---
Fuzzer filename: '/src/picotls/fuzz/fuzz-server-hello.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    ptls_buffer_dispose
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2022
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_buffer__release_memory
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2023,5'
          Dst:             ptls_buffer__release_memory
    - functionName:    ptls_buffer_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2012
      functionLinenumberEnd: 2019
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2013,5'
          Dst:             __assert_fail
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    124
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fake_ticket_cb
      functionSourceFile: '/src/picotls/fuzz/fuzz-server-hello.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_new
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1996
      functionLinenumberEnd: 1997
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_client_new
        - ptls_server_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:1997,24'
          Dst:             ptls_server_new
        - Src:             'include/picotls.h:1997,47'
          Dst:             ptls_client_new
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/picotls/fuzz/fuzz-server-hello.c'
      linkageType:     externalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          123
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_free
        - ptls_handshake
        - ptls_new
        - ptls_receive
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzz/fuzz-server-hello.c:47,26'
          Dst:             ptls_new
        - Src:             'fuzz/fuzz-server-hello.c:59,5'
          Dst:             ptls_buffer_init
        - Src:             'fuzz/fuzz-server-hello.c:62,5'
          Dst:             ptls_handshake
        - Src:             'fuzz/fuzz-server-hello.c:65,5'
          Dst:             ptls_buffer_dispose
        - Src:             'fuzz/fuzz-server-hello.c:66,5'
          Dst:             ptls_buffer_init
        - Src:             'fuzz/fuzz-server-hello.c:70,15'
          Dst:             ptls_handshake
        - Src:             'fuzz/fuzz-server-hello.c:76,9'
          Dst:             ptls_buffer_dispose
        - Src:             'fuzz/fuzz-server-hello.c:77,9'
          Dst:             ptls_buffer_init
        - Src:             'fuzz/fuzz-server-hello.c:79,9'
          Dst:             ptls_receive
        - Src:             'fuzz/fuzz-server-hello.c:83,5'
          Dst:             ptls_buffer_dispose
        - Src:             'fuzz/fuzz-server-hello.c:84,5'
          Dst:             ptls_free
    - functionName:    deterministic_random_bytes
      functionSourceFile: '/src/picotls/fuzz/fuzz-server-hello.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vec_is_string
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4105
      functionLinenumberEnd: 4106
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4106,12'
          Dst:             strncmp
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rebuild_ch_inner_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3912
      functionLinenumberEnd: 3963
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         195
      ICount:          943
      EdgeCount:       247
      CyclomaticComplexity: 54
      functionsReached:
        - __assert_fail
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_decode16
        - ptls_decode_quicint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3915,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3915,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    ptls_buffer__do_pushv
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ptls_buffer_reserve
      functionUses:    345
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:630,16'
          Dst:             ptls_buffer_reserve
    - functionName:    ptls_decode_quicint
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          113
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    73
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_decode16
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntoh16
      functionUses:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:924,14'
          Dst:             ntoh16
    - functionName:    ptls_buffer__adjust_quic_blocksize
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          104
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ptls_buffer_reserve
        - ptls_encode_quicint
      functionUses:    136
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:640,22'
          Dst:             ptls_encode_quicint
        - Src:             'lib/picotls.c:645,20'
          Dst:             ptls_buffer_reserve
    - functionName:    ptls_encode_quicint
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2048
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          139
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2033,17'
          Dst:             __assert_fail
    - functionName:    ptls_buffer_reserve
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_buffer_reserve_aligned
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:584,12'
          Dst:             ptls_buffer_reserve_aligned
    - functionName:    ptls_buffer_reserve_aligned
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          178
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - posix_memalign
        - ptls_buffer__release_memory
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:606,17'
          Dst:             posix_memalign
        - Src:             'lib/picotls.c:614,9'
          Dst:             ptls_buffer__release_memory
    - functionName:    posix_memalign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_buffer__release_memory
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clear_memory
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6530
      functionLinenumberEnd: 6533
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntoh16
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    client_hello_decode_server_name
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3554
      functionLinenumberEnd: 3580
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          317
      EdgeCount:       71
      CyclomaticComplexity: 16
      functionsReached:
        - memchr
        - ptls_decode8
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:3557,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:3557,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3557,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3557,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3557,5'
          Dst:             memchr
        - Src:             'lib/picotls.c:3557,5'
          Dst:             ptls_iovec_init
    - functionName:    ptls_decode8
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_iovec_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2008
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    98
      BranchProfiles:  []
      Callsites:       []
    - functionName:    try_psk_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4115
      functionLinenumberEnd: 4244
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          727
      EdgeCount:       132
      CyclomaticComplexity: 37
      functionsReached:
        - calc_verify_data
        - decode_session_identifier
        - derive_secret_with_empty_digest
        - key_schedule_extract
        - memcmp
        - ptls__key_schedule_update_hash
        - ptls_buffer_dispose
        - ptls_buffer_init
        - vec_is_string
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:4146,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:4124,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:4132,17'
          Dst:             memcmp
        - Src:             'lib/picotls.c:4155,13'
          Dst:             decode_session_identifier
        - Src:             'lib/picotls.c:4175,19'
          Dst:             memcmp
        - Src:             'lib/picotls.c:4182,22'
          Dst:             vec_is_string
        - Src:             'lib/picotls.c:4204,18'
          Dst:             vec_is_string
        - Src:             'lib/picotls.c:4225,37'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4227,16'
          Dst:             derive_secret_with_empty_digest
        - Src:             'lib/picotls.c:4230,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4231,16'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:4242,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_buffer_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2012
      functionLinenumberEnd: 2019
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2013,5'
          Dst:             __assert_fail
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decode_session_identifier
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1758
      functionLinenumberEnd: 1791
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         107
      ICount:          585
      EdgeCount:       138
      CyclomaticComplexity: 33
      functionsReached:
        - memcmp
        - ptls_decode16
        - ptls_decode32
        - ptls_decode64
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1761,5'
          Dst:             memcmp
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1761,5'
          Dst:             ptls_iovec_init
    - functionName:    key_schedule_extract
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1340
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          177
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ptls_hkdf_expand_label
        - ptls_hkdf_extract
        - ptls_iovec_init
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1326,15'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1330,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1331,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1329,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:1337,29'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1336,11'
          Dst:             ptls_hkdf_extract
    - functionName:    derive_secret_with_empty_digest
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1460
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - derive_secret_with_hash
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1460,12'
          Dst:             derive_secret_with_hash
    - functionName:    ptls__key_schedule_update_hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1393
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    38
      BranchProfiles:  []
      Callsites:       []
    - functionName:    calc_verify_data
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1810
      functionLinenumberEnd: 1831
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          150
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ptls_hkdf_expand_label
        - ptls_hmac_create
        - ptls_iovec_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1816,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1817,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1815,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:1819,17'
          Dst:             ptls_hmac_create
    - functionName:    ptls_buffer_dispose
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2022
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_buffer__release_memory
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2023,5'
          Dst:             ptls_buffer__release_memory
    - functionName:    mem_equal
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6538
      functionLinenumberEnd: 6545
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          55
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_hkdf_expand_label
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6371
      functionLinenumberEnd: 6391
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         75
      ICount:          367
      EdgeCount:       94
      CyclomaticComplexity: 21
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_hkdf_expand
        - ptls_iovec_init
        - strlen
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6376,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:6378,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6379,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6379,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:6379,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6379,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:6379,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6379,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6385,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6385,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6385,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6387,58'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6387,11'
          Dst:             ptls_hkdf_expand
        - Src:             'lib/picotls.c:6390,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_hmac_create
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6302
      functionLinenumberEnd: 6321
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          109
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - hmac_apply_key
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6305,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6318,5'
          Dst:             hmac_apply_key
    - functionName:    hmac_update
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6247
      functionLinenumberEnd: 6250
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmac_final
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6264
      functionLinenumberEnd: 6288
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          122
      EdgeCount:       27
      CyclomaticComplexity: 15
      functionsReached:
        - __assert_fail
        - hmac_apply_key
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:6276,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6267,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6271,9'
          Dst:             hmac_apply_key
        - Src:             'lib/picotls.c:6282,9'
          Dst:             hmac_apply_key
        - Src:             'lib/picotls.c:6285,9'
          Dst:             __assert_fail
    - functionName:    hmac_apply_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6253
      functionLinenumberEnd: 6261
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_hkdf_expand
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6338
      functionLinenumberEnd: 6367
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          179
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ptls_hmac_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6345,25'
          Dst:             ptls_hmac_create
    - functionName:    derive_secret_with_hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1439
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          75
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_hkdf_expand_label
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1441,38'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1442,38'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1440,15'
          Dst:             ptls_hkdf_expand_label
    - functionName:    ptls_hkdf_extract
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6324
      functionLinenumberEnd: 6335
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ptls_hmac_create
        - ptls_iovec_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6328,16'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6330,17'
          Dst:             ptls_hmac_create
    - functionName:    ptls_decode64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntoh64
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:951,14'
          Dst:             ntoh64
    - functionName:    ptls_decode32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 939
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntoh32
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:942,14'
          Dst:             ntoh32
    - functionName:    ntoh32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntoh64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          52
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    key_schedule_extract_ch1hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1417
      functionLinenumberEnd: 1420
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1418,5'
          Dst:             __assert_fail
    - functionName:    select_negotiated_group
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3585
      functionLinenumberEnd: 3607
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          201
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - ptls_decode16
        - ptls_decode_quicint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3588,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3588,5'
          Dst:             ptls_decode16
    - functionName:    key_schedule_update_ch1hash_prefix
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1411
      functionLinenumberEnd: 1414
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls__key_schedule_update_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1413,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    calc_cookie_signature
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4249
      functionLinenumberEnd: 4284
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          327
      EdgeCount:       43
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - ptls_hmac_create
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4253,17'
          Dst:             ptls_hmac_create
        - Src:             'lib/picotls.c:4271,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4272,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:4272,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4275,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4277,5'
          Dst:             __assert_fail
    - functionName:    select_key_share
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2120
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - decode_key_share_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2102,20'
          Dst:             decode_key_share_entry
    - functionName:    decode_key_share_entry
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2083
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          168
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2075,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2077,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2077,5'
          Dst:             ptls_iovec_init
    - functionName:    select_cipher
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2020
      functionLinenumberEnd: 2057
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          195
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - ptls_decode16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2026,20'
          Dst:             ptls_decode16
    - functionName:    certificate_type_exists
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4287
      functionLinenumberEnd: 4296
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    call_on_client_hello_cb
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4035
      functionLinenumberEnd: 4049
      functionDepth:   0
      returnType:      int
      argCount:        17
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          134
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rebuild_ch_inner
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3968
      functionLinenumberEnd: 4022
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         216
      ICount:          1038
      EdgeCount:       275
      CyclomaticComplexity: 61
      functionsReached:
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_decode16
        - ptls_decode_quicint
        - rebuild_ch_inner_extensions
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3979,5'
          Dst:             rebuild_ch_inner_extensions
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3979,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    check_client_hello_constraints
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4053
      functionLinenumberEnd: 4102
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          265
      EdgeCount:       58
      CyclomaticComplexity: 18
      functionsReached:
        - call_on_client_hello_cb
        - is_supported_version
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4062,10'
          Dst:             is_supported_version
        - Src:             'lib/picotls.c:4069,24'
          Dst:             call_on_client_hello_cb
    - functionName:    is_supported_version
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decode_client_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3611
      functionLinenumberEnd: 3907
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         671
      ICount:          3551
      EdgeCount:       858
      CyclomaticComplexity: 189
      functionsReached:
        - __assert_fail
        - client_hello_decode_server_name
        - collect_unknown_extension
        - decode_signature_algorithms
        - extension_bitmap_testandset
        - ptls_decode16
        - ptls_decode32
        - ptls_decode8
        - ptls_decode_quicint
        - ptls_iovec_init
        - should_collect_unknown_extension
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:3673,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:3673,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:3673,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:3617,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3633,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3633,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3643,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3643,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3653,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3673,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             client_hello_decode_server_name
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             decode_signature_algorithms
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3673,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3673,5'
          Dst:             should_collect_unknown_extension
        - Src:             'lib/picotls.c:3673,5'
          Dst:             collect_unknown_extension
    - functionName:    extension_bitmap_testandset
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          373
      EdgeCount:       83
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decode_signature_algorithms
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1997
      functionLinenumberEnd: 2012
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          195
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - ptls_decode16
        - ptls_decode_quicint
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2000,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2000,5'
          Dst:             ptls_decode16
    - functionName:    should_collect_unknown_extension
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2916
      functionLinenumberEnd: 2917
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    collect_unknown_extension
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2922
      functionLinenumberEnd: 2935
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2925,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2931,25'
          Dst:             ptls_iovec_init
    - functionName:    server_handle_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4977
      functionLinenumberEnd: 4992
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          83
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ptls__key_schedule_update_hash
        - setup_traffic_protection
        - verify_finished
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4980,16'
          Dst:             verify_finished
        - Src:             'lib/picotls.c:4985,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4988,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    verify_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1834
      functionLinenumberEnd: 1852
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calc_verify_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1843,16'
          Dst:             calc_verify_data
    - functionName:    setup_traffic_protection
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1641
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          215
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - derive_secret
        - log_secret
        - ptls_aead_free
        - ptls_aead_new
        - ptls_iovec_init
        - ptls_is_server
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1649,20'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:1655,32'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:1656,16'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1655,5'
          Dst:             log_secret
        - Src:             'lib/picotls.c:1666,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:1667,22'
          Dst:             ptls_aead_new
    - functionName:    derive_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1449
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - derive_secret_with_hash
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1453,15'
          Dst:             derive_secret_with_hash
    - functionName:    ptls_is_server
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6560
      functionLinenumberEnd: 6561
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          151
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_hexdump
        - ptls_log__do_push_element_safestr
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:981,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_log__do_push_element_safestr
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:981,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:984,71'
          Dst:             ptls_hexdump
    - functionName:    ptls_aead_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6497
      functionLinenumberEnd: 6500
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6475
      functionLinenumberEnd: 6476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - new_aead
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6476,49'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6476,12'
          Dst:             new_aead
    - functionName:    new_aead
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6457
      functionLinenumberEnd: 6470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_traffic_keys
        - ptls_aead_new_direct
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6465,16'
          Dst:             get_traffic_keys
        - Src:             'lib/picotls.c:6467,11'
          Dst:             ptls_aead_new_direct
    - functionName:    get_traffic_keys
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1628
      functionLinenumberEnd: 1637
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_traffic_key
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1631,16'
          Dst:             get_traffic_key
        - Src:             'lib/picotls.c:1632,16'
          Dst:             get_traffic_key
    - functionName:    ptls_aead_new_direct
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6480
      functionLinenumberEnd: 6494
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_traffic_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1621
      functionLinenumberEnd: 1623
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_hkdf_expand_label
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1622,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1622,12'
          Dst:             ptls_hkdf_expand_label
    - functionName:    ptls_log_point_maybe_active
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1969
      functionLinenumberEnd: 1973
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_log__recalc_point
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:1972,9'
          Dst:             ptls_log__recalc_point
    - functionName:    ptls_get_log_state
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5608
      functionLinenumberEnd: 5610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_get_server_name
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5542
      functionLinenumberEnd: 5543
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log_conn_maybe_active
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1989
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_log__recalc_conn
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:1988,9'
          Dst:             ptls_log__recalc_conn
    - functionName:    ptls_log__do_write_start
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7051
      functionLinenumberEnd: 7091
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          230
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - gettimeofday
        - ptls_buffer_init
        - snprintf
        - sprintf
        - strchr
        - syscall
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7052,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7053,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:7056,28'
          Dst:             strchr
        - Src:             'lib/picotls.c:7057,19'
          Dst:             snprintf
        - Src:             'lib/picotls.c:7063,80'
          Dst:             syscall
        - Src:             'lib/picotls.c:7063,26'
          Dst:             sprintf
        - Src:             'lib/picotls.c:7077,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7084,9'
          Dst:             gettimeofday
        - Src:             'lib/picotls.c:7085,20'
          Dst:             snprintf
        - Src:             'lib/picotls.c:7088,5'
          Dst:             __assert_fail
    - functionName:    ptls_log__do_push_element_unsigned64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7033
      functionLinenumberEnd: 7035
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pushf_logbuf_or_invalidate
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7034,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_safestr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6989
      functionLinenumberEnd: 6996
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          78
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - expand_logbuf_or_invalidate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6990,9'
          Dst:             expand_logbuf_or_invalidate
    - functionName:    ptls_log__do_write_end
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7095
      functionLinenumberEnd: 7148
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          308
      EdgeCount:       79
      CyclomaticComplexity: 19
      functionsReached:
        - __assert_fail
        - __errno_location
        - close_log_fd
        - expand_logbuf_or_invalidate
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - ptls_buffer_dispose
        - ptls_log__recalc_conn
        - ptls_log__recalc_point
        - write
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7096,10'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7101,5'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:7105,9'
          Dst:             ptls_log__recalc_point
        - Src:             'lib/picotls.c:7108,9'
          Dst:             ptls_log__recalc_conn
        - Src:             'lib/picotls.c:7117,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7127,24'
          Dst:             write
        - Src:             'lib/picotls.c:7127,96'
          Dst:             __errno_location
        - Src:             'lib/picotls.c:7131,48'
          Dst:             __errno_location
        - Src:             'lib/picotls.c:7131,67'
          Dst:             __errno_location
        - Src:             'lib/picotls.c:7136,13'
          Dst:             close_log_fd
        - Src:             'lib/picotls.c:7140,5'
          Dst:             pthread_mutex_unlock
        - Src:             'lib/picotls.c:7143,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7145,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:7146,5'
          Dst:             __assert_fail
    - functionName:    ptls_hexdump
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6727
      functionLinenumberEnd: 6734
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - byte_to_hex
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6732,15'
          Dst:             byte_to_hex
    - functionName:    byte_to_hex
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6720
      functionLinenumberEnd: 6723
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expand_logbuf_or_invalidate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6957
      functionLinenumberEnd: 6971
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - ptls_buffer_dispose
        - ptls_buffer_reserve
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6961,9'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:6962,9'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:6963,9'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log__recalc_point
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6913
      functionLinenumberEnd: 6929
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - is_in_stringlist
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6915,9'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:6921,54'
          Dst:             is_in_stringlist
        - Src:             'lib/picotls.c:6928,9'
          Dst:             pthread_mutex_unlock
    - functionName:    ptls_log__recalc_conn
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6933
      functionLinenumberEnd: 6954
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          167
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - is_in_addresslist
        - is_in_stringlist
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6935,9'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:6943,17'
          Dst:             is_in_stringlist
        - Src:             'lib/picotls.c:6944,17'
          Dst:             is_in_addresslist
        - Src:             'lib/picotls.c:6953,9'
          Dst:             pthread_mutex_unlock
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close_log_fd
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6845
      functionLinenumberEnd: 6861
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6846,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6848,5'
          Dst:             close
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_in_stringlist
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6881
      functionLinenumberEnd: 6892
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6889,13'
          Dst:             strcmp
        - Src:             'lib/picotls.c:6888,69'
          Dst:             strlen
    - functionName:    is_in_addresslist
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6895
      functionLinenumberEnd: 6910
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6898,9'
          Dst:             memcmp
        - Src:             'lib/picotls.c:6901,9'
          Dst:             memcmp
        - Src:             'lib/picotls.c:6904,50'
          Dst:             memcmp
        - Src:             'lib/picotls.c:6905,13'
          Dst:             memcmp
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pushf_logbuf_or_invalidate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6975
      functionLinenumberEnd: 6986
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - expand_logbuf_or_invalidate
        - vsnprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6976,10'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:6981,13'
          Dst:             vsnprintf
        - Src:             'lib/picotls.c:6984,5'
          Dst:             __assert_fail
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syscall
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gettimeofday
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    server_handle_end_of_early_data
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4962
      functionLinenumberEnd: 4973
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - commission_handshake_secret
        - ptls__key_schedule_update_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4965,16'
          Dst:             commission_handshake_secret
        - Src:             'lib/picotls.c:4968,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    commission_handshake_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1685
      functionLinenumberEnd: 1695
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - ptls_is_server
        - setup_traffic_protection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1686,19'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:1688,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1695,12'
          Dst:             setup_traffic_protection
    - functionName:    server_handle_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3440
      functionLinenumberEnd: 3448
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - handle_certificate_verify
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3441,15'
          Dst:             handle_certificate_verify
    - functionName:    handle_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3392
      functionLinenumberEnd: 3424
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          264
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - build_certificate_verify_signdata
        - ptls__key_schedule_update_hash
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3401,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3403,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3403,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3408,21'
          Dst:             build_certificate_verify_signdata
        - Src:             'lib/picotls.c:3410,84'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3421,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    build_certificate_verify_signdata
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1795
      functionLinenumberEnd: 1806
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          83
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1800,44'
          Dst:             strlen
        - Src:             'lib/picotls.c:1801,16'
          Dst:             strlen
        - Src:             'lib/picotls.c:1804,5'
          Dst:             __assert_fail
    - functionName:    server_handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3373
      functionLinenumberEnd: 3389
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - handle_certificate
        - ptls__key_schedule_update_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3376,16'
          Dst:             handle_certificate
        - Src:             'lib/picotls.c:3379,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3249
      functionLinenumberEnd: 3297
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         151
      ICount:          802
      EdgeCount:       195
      CyclomaticComplexity: 46
      functionsReached:
        - extension_bitmap_testandset
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
        - ptls_is_ech_handshake
        - ptls_is_server
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3255,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3262,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3262,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3282,14'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:3283,38'
          Dst:             ptls_is_ech_handshake
    - functionName:    ptls_is_ech_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5589
      functionLinenumberEnd: 5600
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    server_handle_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4300
      functionLinenumberEnd: 4895
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1833
      ICount:          9948
      EdgeCount:       2336
      CyclomaticComplexity: 505
      functionsReached:
        - __assert_fail
        - calc_cookie_signature
        - call_on_client_hello_cb
        - certificate_type_exists
        - check_client_hello_constraints
        - clear_ech
        - decode_client_hello
        - derive_exporter_secret
        - derive_secret
        - ech_calc_confirmation
        - key_schedule_extract
        - key_schedule_extract_ch1hash
        - key_schedule_new
        - key_schedule_transform_post_ch1hash
        - key_schedule_update_ch1hash_prefix
        - log_client_random
        - memcmp
        - ptls__key_schedule_update_hash
        - ptls_aead_decrypt
        - ptls_aead_free
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_buffer_reserve
        - ptls_decode_quicint
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_iovec_init
        - ptls_is_ech_handshake
        - ptls_log__do_push_element_bool
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
        - push_additional_extensions
        - push_change_cipher_spec
        - push_signature_algorithms
        - rebuild_ch_inner
        - report_unknown_extensions
        - select_cipher
        - select_key_share
        - select_negotiated_group
        - send_certificate
        - server_finish_handshake
        - setup_traffic_protection
        - strlen
        - try_psk_handshake
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4359,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:4369,16'
          Dst:             decode_client_hello
        - Src:             'lib/picotls.c:4372,16'
          Dst:             check_client_hello_constraints
        - Src:             'lib/picotls.c:4376,9'
          Dst:             log_client_random
        - Src:             'lib/picotls.c:4404,57'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:4409,13'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:4420,17'
          Dst:             ptls_aead_decrypt
        - Src:             'lib/picotls.c:4424,28'
          Dst:             rebuild_ch_inner
        - Src:             'lib/picotls.c:4430,27'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4432,28'
          Dst:             decode_client_hello
        - Src:             'lib/picotls.c:4435,28'
          Dst:             check_client_hello_constraints
        - Src:             'lib/picotls.c:4446,17'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:4451,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4466,20'
          Dst:             call_on_client_hello_cb
        - Src:             'lib/picotls.c:4472,14'
          Dst:             certificate_type_exists
        - Src:             'lib/picotls.c:4486,24'
          Dst:             strlen
        - Src:             'lib/picotls.c:4487,47'
          Dst:             memcmp
        - Src:             'lib/picotls.c:4496,20'
          Dst:             select_cipher
        - Src:             'lib/picotls.c:4502,38'
          Dst:             key_schedule_new
        - Src:             'lib/picotls.c:4517,9'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:4517,9'
          Dst:             select_key_share
        - Src:             'lib/picotls.c:4529,28'
          Dst:             calc_cookie_signature
        - Src:             'lib/picotls.c:4537,13'
          Dst:             key_schedule_update_ch1hash_prefix
        - Src:             'lib/picotls.c:4538,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4539,13'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4544,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4562,24'
          Dst:             select_negotiated_group
        - Src:             'lib/picotls.c:4565,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4566,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4571,80'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4573,17'
          Dst:             key_schedule_transform_post_ch1hash
        - Src:             'lib/picotls.c:4574,17'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4577,13'
          Dst:             key_schedule_extract_ch1hash
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4577,13'
          Dst:             calc_cookie_signature
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ech_calc_confirmation
        - Src:             'lib/picotls.c:4577,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4633,28'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:4647,16'
          Dst:             report_unknown_extensions
        - Src:             'lib/picotls.c:4655,38'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4654,20'
          Dst:             try_psk_handshake
        - Src:             'lib/picotls.c:4674,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4676,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4677,53'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4677,13'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4683,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4687,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4720,20'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:4722,20'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4733,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4734,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ech_calc_confirmation
        - Src:             'lib/picotls.c:4742,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4776,5'
          Dst:             clear_ech
        - Src:             'lib/picotls.c:4778,16'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:4782,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4783,5'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4784,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4787,20'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:4793,20'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             push_additional_extensions
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4800,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             push_signature_algorithms
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4840,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4873,78'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4873,20'
          Dst:             send_certificate
        - Src:             'lib/picotls.c:4877,20'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:4881,20'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:4893,5'
          Dst:             ptls_buffer_dispose
    - functionName:    log_client_random
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1699
      functionLinenumberEnd: 1706
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_log__do_push_element_hexdump
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_log__do_push_element_hexdump
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:1705,5'
          Dst:             ptls_get_server_name
    - functionName:    ptls_log__do_push_element_bool
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7038
      functionLinenumberEnd: 7048
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - expand_logbuf_or_invalidate
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7039,9'
          Dst:             expand_logbuf_or_invalidate
    - functionName:    ptls_aead_decrypt
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2131
      functionLinenumberEnd: 2132
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    key_schedule_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1267
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          444
      EdgeCount:       100
      CyclomaticComplexity: 25
      functionsReached:
        - key_schedule_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1315,5'
          Dst:             key_schedule_free
    - functionName:    key_schedule_transform_post_ch1hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          110
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ech_calc_confirmation
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1251
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          197
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ptls_hkdf_expand_label
        - ptls_hkdf_extract
        - ptls_iovec_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1239,65'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1240,34'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1239,16'
          Dst:             ptls_hkdf_extract
        - Src:             'lib/picotls.c:1242,70'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1243,46'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1242,16'
          Dst:             ptls_hkdf_expand_label
    - functionName:    push_change_cipher_spec
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1940
      functionLinenumberEnd: 1961
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          220
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1956,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1956,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1956,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1956,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    report_unknown_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2938
      functionLinenumberEnd: 2945
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2940,9'
          Dst:             __assert_fail
    - functionName:    derive_exporter_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          144
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - derive_secret
        - log_secret
        - ptls_iovec_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1471,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1475,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:1479,16'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1478,5'
          Dst:             log_secret
    - functionName:    clear_ech
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ptls_aead_free
        - ptls_iovec_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:993,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:999,27'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1005,33'
          Dst:             ptls_iovec_init
    - functionName:    push_additional_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1965
      functionLinenumberEnd: 1976
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          230
      EdgeCount:       62
      CyclomaticComplexity: 14
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1971,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1971,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1971,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1971,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    push_signature_algorithms
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          201
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1986,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1986,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1986,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    send_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3161
      functionLinenumberEnd: 3186
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3177,17'
          Dst:             __assert_fail
    - functionName:    server_finish_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4903
      functionLinenumberEnd: 4958
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          301
      EdgeCount:       69
      CyclomaticComplexity: 18
      functionsReached:
        - __assert_fail
        - commission_handshake_secret
        - derive_exporter_secret
        - derive_secret
        - key_schedule_extract
        - ptls_iovec_init
        - send_certificate_verify
        - send_finished
        - send_session_ticket
        - setup_traffic_protection
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:4907,20'
          Dst:             send_certificate_verify
        - Src:             'lib/picotls.c:4916,16'
          Dst:             send_finished
        - Src:             'lib/picotls.c:4919,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4920,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4920,16'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4922,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4924,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:4926,16'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:4931,24'
          Dst:             commission_handshake_secret
        - Src:             'lib/picotls.c:4945,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4947,24'
          Dst:             send_session_ticket
    - functionName:    send_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3191
      functionLinenumberEnd: 3226
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         106
      ICount:          602
      EdgeCount:       132
      CyclomaticComplexity: 28
      functionsReached:
        - __assert_fail
        - build_certificate_verify_signdata
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3198,5'
          Dst:             build_certificate_verify_signdata
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3198,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3198,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3198,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3198,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    send_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1856
      functionLinenumberEnd: 1869
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          294
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - calc_verify_data
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_reserve
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1859,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1859,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1859,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:1859,5'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:1859,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1859,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    send_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1873
      functionLinenumberEnd: 1936
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         272
      ICount:          1602
      EdgeCount:       342
      CyclomaticComplexity: 72
      functionsReached:
        - __assert_fail
        - calc_verify_data
        - encode_session_identifier
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_buffer_reserve
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1880,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1881,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1883,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:1888,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1889,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1889,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1889,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1889,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:1892,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1892,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1892,9'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:1892,9'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:1892,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1892,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:1907,107'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1907,42'
          Dst:             encode_session_identifier
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1913,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:1930,5'
          Dst:             ptls_buffer_dispose
    - functionName:    encode_session_identifier
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1714
      functionLinenumberEnd: 1752
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - short
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         157
      ICount:          815
      EdgeCount:       198
      CyclomaticComplexity: 43
      functionsReached:
        - derive_resumption_secret
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_reserve
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:1717,5'
          Dst:             derive_resumption_secret
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1717,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    derive_resumption_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1495
      functionLinenumberEnd: 1507
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - derive_secret
        - ptls_hkdf_expand_label
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1498,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:1501,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1500,16'
          Dst:             ptls_hkdf_expand_label
    - functionName:    default_emit_certificate_cb
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3144
      functionLinenumberEnd: 3155
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          279
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_build_certificate_message
        - ptls_iovec_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3147,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3147,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3147,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3147,5'
          Dst:             ptls_build_certificate_message
        - Src:             'lib/picotls.c:3147,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3147,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_build_certificate_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3117
      functionLinenumberEnd: 3138
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         187
      ICount:          872
      EdgeCount:       237
      CyclomaticComplexity: 52
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3120,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3120,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3120,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3121,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    begin_record_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_buffer__do_pushv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:859,5'
          Dst:             ptls_buffer__do_pushv
    - functionName:    key_schedule_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1255
      functionLinenumberEnd: 1264
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log__do_push_element_hexdump
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7008
      functionLinenumberEnd: 7015
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - expand_logbuf_or_invalidate
        - ptls_hexdump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7009,9'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7011,9'
          Dst:             ptls_hexdump
    - functionName:    client_do_handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3301
      functionLinenumberEnd: 3310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - handle_certificate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3304,16'
          Dst:             handle_certificate
    - functionName:    decode_certificate_request
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3070
      functionLinenumberEnd: 3112
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         101
      ICount:          537
      EdgeCount:       129
      CyclomaticComplexity: 30
      functionsReached:
        - decode_signature_algorithms
        - extension_bitmap_testandset
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:3091,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:3075,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3091,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3091,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3091,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:3091,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3091,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3091,5'
          Dst:             decode_signature_algorithms
    - functionName:    key_schedule_select_outer
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1390
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1383,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1384,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1385,5'
          Dst:             __assert_fail
    - functionName:    handle_hello_retry_request
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2739
      functionLinenumberEnd: 2778
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          221
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - __assert_fail
        - ptls_aead_free
        - ptls_iovec_init
        - send_client_hello
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2743,85'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2750,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2751,13'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:2775,11'
          Dst:             send_client_hello
    - functionName:    send_client_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2345
      functionLinenumberEnd: 2574
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         181
      ICount:          1514
      EdgeCount:       244
      CyclomaticComplexity: 65
      functionsReached:
        - __assert_fail
        - calc_verify_data
        - client_decode_ech_config_list
        - client_setup_ech
        - client_setup_ech_grease
        - decode_stored_session_ticket
        - derive_exporter_secret
        - derive_secret_with_empty_digest
        - encode_client_hello
        - key_schedule_extract
        - key_schedule_new
        - outer_ech_header_size
        - ptls__key_schedule_update_hash
        - ptls_aead_encrypt
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_buffer_reserve
        - ptls_iovec_init
        - ptls_server_name_is_ipaddr
        - push_change_cipher_spec
        - setup_traffic_protection
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2358,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:2360,38'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/picotls.c:2368,17'
          Dst:             client_decode_ech_config_list
        - Src:             'lib/picotls.c:2370,32'
          Dst:             client_setup_ech
        - Src:             'lib/picotls.c:2375,17'
          Dst:             client_setup_ech_grease
        - Src:             'lib/picotls.c:2391,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2397,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2410,13'
          Dst:             decode_stored_session_ticket
        - Src:             'lib/picotls.c:2424,26'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2445,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2453,34'
          Dst:             key_schedule_new
        - Src:             'lib/picotls.c:2457,20'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:2467,16'
          Dst:             encode_client_hello
        - Src:             'lib/picotls.c:2477,20'
          Dst:             derive_secret_with_empty_digest
        - Src:             'lib/picotls.c:2479,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2481,20'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:2484,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2491,88'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2489,20'
          Dst:             encode_client_hello
        - Src:             'lib/picotls.c:2502,31'
          Dst:             strlen
        - Src:             'lib/picotls.c:2512,28'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2524,100'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2522,20'
          Dst:             encode_client_hello
        - Src:             'lib/picotls.c:2529,9'
          Dst:             ptls_aead_encrypt
        - Src:             'lib/picotls.c:2535,26'
          Dst:             outer_ech_header_size
        - Src:             'lib/picotls.c:2541,59'
          Dst:             outer_ech_header_size
        - Src:             'lib/picotls.c:2550,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2558,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2559,20'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:2561,20'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:2565,20'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:2572,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_server_name_is_ipaddr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6680
      functionLinenumberEnd: 6692
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - inet_pton
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6683,9'
          Dst:             inet_pton
        - Src:             'lib/picotls.c:6688,9'
          Dst:             inet_pton
    - functionName:    client_decode_ech_config_list
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1141
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          397
      EdgeCount:       94
      CyclomaticComplexity: 23
      functionsReached:
        - decode_one_ech_config
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1113,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1113,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1113,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1113,5'
          Dst:             decode_one_ech_config
        - Src:             'lib/picotls.c:1113,5'
          Dst:             ptls_iovec_init
    - functionName:    client_setup_ech
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          161
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - clear_ech
        - duplicate_as_str
        - ptls_buffer__do_pushv
        - ptls_buffer_init
        - ptls_hpke_setup_base_s
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1152,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:1153,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1154,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1156,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1155,16'
          Dst:             ptls_hpke_setup_base_s
        - Src:             'lib/picotls.c:1165,36'
          Dst:             duplicate_as_str
        - Src:             'lib/picotls.c:1172,9'
          Dst:             clear_ech
    - functionName:    client_setup_ech_grease
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          224
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - clear_ech
        - duplicate_as_str
        - ptls_aead_new_direct
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1200,17'
          Dst:             ptls_aead_new_direct
        - Src:             'lib/picotls.c:1211,63'
          Dst:             strlen
        - Src:             'lib/picotls.c:1211,36'
          Dst:             duplicate_as_str
        - Src:             'lib/picotls.c:1217,5'
          Dst:             clear_ech
    - functionName:    decode_stored_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          473
      EdgeCount:       108
      CyclomaticComplexity: 27
      functionsReached:
        - decode_new_session_ticket
        - ptls_decode16
        - ptls_decode64
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1566,16'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:1568,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1570,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1572,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1572,5'
          Dst:             decode_new_session_ticket
        - Src:             'lib/picotls.c:1577,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1577,5'
          Dst:             ptls_iovec_init
    - functionName:    encode_client_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2157
      functionLinenumberEnd: 2340
      functionDepth:   0
      returnType:      int
      argCount:        18
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1339
      ICount:          6269
      EdgeCount:       1688
      CyclomaticComplexity: 351
      functionsReached:
        - __assert_fail
        - emit_server_name_extension
        - outer_ech_header_size
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_reserve
        - push_additional_extensions
        - push_key_share_entry
        - push_signature_algorithms
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2160,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             outer_ech_header_size
        - Src:             'lib/picotls.c:2162,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             push_key_share_entry
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             emit_server_name_extension
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             push_signature_algorithms
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             push_additional_extensions
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2162,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_aead_encrypt
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2073
      functionLinenumberEnd: 2075
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    outer_ech_header_size
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2141
      functionLinenumberEnd: 2142
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    push_key_share_entry
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2061
      functionLinenumberEnd: 2068
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          189
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2064,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2065,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2065,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2065,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    emit_server_name_extension
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2124
      functionLinenumberEnd: 2134
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         62
      ICount:          288
      EdgeCount:       78
      CyclomaticComplexity: 18
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2127,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2127,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2127,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2127,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:2127,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2127,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2127,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    decode_new_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1512
      functionLinenumberEnd: 1552
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         119
      ICount:          647
      EdgeCount:       152
      CyclomaticComplexity: 35
      functionsReached:
        - extension_bitmap_testandset
        - ptls_decode16
        - ptls_decode32
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:1534,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:1516,16'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:1518,16'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:1520,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1520,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1524,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1524,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1534,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1534,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1534,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:1534,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1534,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1534,5'
          Dst:             ptls_decode32
    - functionName:    duplicate_as_str
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decode_one_ech_config
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         170
      ICount:          945
      EdgeCount:       220
      CyclomaticComplexity: 52
      functionsReached:
        - duplicate_as_str
        - ptls_decode16
        - ptls_decode8
        - ptls_decode_quicint
        - ptls_iovec_init
        - ptls_server_name_is_ipaddr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1021,16'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:1024,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1032,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1032,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1040,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1040,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1040,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1058,16'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:1070,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1070,5'
          Dst:             duplicate_as_str
        - Src:             'lib/picotls.c:1070,5'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/picotls.c:1070,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1087,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1087,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1087,5'
          Dst:             ptls_decode_quicint
    - functionName:    inet_pton
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    client_ech_select_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2782
      functionLinenumberEnd: 2809
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          214
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - ech_calc_confirmation
        - key_schedule_select_outer
        - ptls_aead_free
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_log__do_push_element_bool
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2791,20'
          Dst:             ech_calc_confirmation
        - Src:             'lib/picotls.c:2801,5'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:2803,5'
          Dst:             key_schedule_select_outer
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:2807,5'
          Dst:             ptls_get_server_name
    - functionName:    key_schedule_select_cipher
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1343
      functionLinenumberEnd: 1376
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          200
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - key_schedule_extract
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1347,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1352,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1370,20'
          Dst:             key_schedule_extract
    - functionName:    decode_server_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2588
      functionLinenumberEnd: 2734
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         196
      ICount:          1066
      EdgeCount:       254
      CyclomaticComplexity: 60
      functionsReached:
        - __assert_fail
        - decode_key_share_entry
        - extension_bitmap_testandset
        - is_supported_version
        - memcmp
        - ptls_decode16
        - ptls_decode8
        - ptls_decode_quicint
        - ptls_find_cipher_suite
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:2642,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:2605,28'
          Dst:             memcmp
        - Src:             'lib/picotls.c:2609,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2609,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2620,20'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2622,34'
          Dst:             ptls_find_cipher_suite
        - Src:             'lib/picotls.c:2630,20'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2642,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2642,5'
          Dst:             decode_key_share_entry
        - Src:             'lib/picotls.c:2642,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2642,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2642,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2642,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2710,10'
          Dst:             is_supported_version
    - functionName:    ptls_find_cipher_suite
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2578
      functionLinenumberEnd: 2585
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_key_update
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5013
      functionLinenumberEnd: 5032
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - update_traffic_key
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5022,16'
          Dst:             update_traffic_key
    - functionName:    update_traffic_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4995
      functionLinenumberEnd: 5009
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          106
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ptls_hkdf_expand_label
        - ptls_iovec_init
        - setup_traffic_protection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5001,72'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5002,54'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5001,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:5005,11'
          Dst:             setup_traffic_protection
    - functionName:    client_handle_new_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3512
      functionLinenumberEnd: 3551
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         87
      ICount:          542
      EdgeCount:       110
      CyclomaticComplexity: 25
      functionsReached:
        - decode_new_session_ticket
        - derive_resumption_secret
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_buffer_reserve
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3520,20'
          Dst:             decode_new_session_ticket
        - Src:             'lib/picotls.c:3531,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:3532,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3533,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3534,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3535,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3535,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3535,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3536,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3536,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:3536,5'
          Dst:             derive_resumption_secret
        - Src:             'lib/picotls.c:3536,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3544,70'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3549,5'
          Dst:             ptls_buffer_dispose
    - functionName:    client_handle_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3452
      functionLinenumberEnd: 3508
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         91
      ICount:          571
      EdgeCount:       120
      CyclomaticComplexity: 31
      functionsReached:
        - __assert_fail
        - commission_handshake_secret
        - derive_exporter_secret
        - derive_secret
        - key_schedule_extract
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_iovec_init
        - ptls_is_ech_handshake
        - push_change_cipher_spec
        - send_certificate
        - send_certificate_verify
        - send_finished
        - setup_traffic_protection
        - verify_finished
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3454,51'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:3456,16'
          Dst:             verify_finished
        - Src:             'lib/picotls.c:3458,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:3461,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3461,16'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:3463,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:3465,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:3467,16'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:3472,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3474,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3474,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3474,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3474,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:3476,20'
          Dst:             commission_handshake_secret
        - Src:             'lib/picotls.c:3480,16'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:3484,20'
          Dst:             send_certificate
        - Src:             'lib/picotls.c:3486,19'
          Dst:             send_certificate_verify
        - Src:             'lib/picotls.c:3489,51'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3494,11'
          Dst:             send_finished
        - Src:             'lib/picotls.c:3497,16'
          Dst:             setup_traffic_protection
    - functionName:    client_handle_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3428
      functionLinenumberEnd: 3436
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - handle_certificate_verify
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3429,15'
          Dst:             handle_certificate_verify
    - functionName:    client_handle_compressed_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3326
      functionLinenumberEnd: 3369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          293
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - client_do_handle_certificate
        - ptls__key_schedule_update_hash
        - ptls_decode16
        - ptls_decode24
        - ptls_decode_quicint
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3339,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3341,16'
          Dst:             ptls_decode24
        - Src:             'lib/picotls.c:3351,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3351,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3351,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3360,16'
          Dst:             client_do_handle_certificate
        - Src:             'lib/picotls.c:3363,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_decode24
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 936
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          56
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    client_handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3313
      functionLinenumberEnd: 3323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - client_do_handle_certificate
        - ptls__key_schedule_update_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3316,16'
          Dst:             client_do_handle_certificate
        - Src:             'lib/picotls.c:3319,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    client_handle_certificate_request
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3229
      functionLinenumberEnd: 3246
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - decode_certificate_request
        - ptls__key_schedule_update_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3233,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3235,16'
          Dst:             decode_certificate_request
        - Src:             'lib/picotls.c:3243,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    client_handle_encrypted_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2948
      functionLinenumberEnd: 3065
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         185
      ICount:          1034
      EdgeCount:       242
      CyclomaticComplexity: 59
      functionsReached:
        - client_decode_ech_config_list
        - collect_unknown_extension
        - extension_bitmap_testandset
        - ptls__key_schedule_update_hash
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
        - ptls_is_ech_handshake
        - ptls_server_name_is_ipaddr
        - ptls_set_negotiated_protocol
        - report_unknown_extensions
        - should_collect_unknown_extension
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:2956,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2956,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_set_negotiated_protocol
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:2956,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2956,5'
          Dst:             client_decode_ech_config_list
        - Src:             'lib/picotls.c:2956,5'
          Dst:             should_collect_unknown_extension
        - Src:             'lib/picotls.c:2956,5'
          Dst:             collect_unknown_extension
        - Src:             'lib/picotls.c:3054,16'
          Dst:             report_unknown_extensions
        - Src:             'lib/picotls.c:3057,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_set_negotiated_protocol
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5566
      functionLinenumberEnd: 5576
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - duplicate_as_str
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5569,100'
          Dst:             strlen
        - Src:             'lib/picotls.c:5569,38'
          Dst:             duplicate_as_str
    - functionName:    client_handle_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2814
      functionLinenumberEnd: 2913
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          621
      EdgeCount:       114
      CyclomaticComplexity: 30
      functionsReached:
        - __assert_fail
        - clear_ech
        - client_ech_select_hello
        - decode_server_hello
        - derive_secret
        - handle_hello_retry_request
        - key_schedule_extract
        - key_schedule_select_cipher
        - key_schedule_transform_post_ch1hash
        - ptls__key_schedule_update_hash
        - ptls_iovec_init
        - setup_traffic_protection
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2819,16'
          Dst:             decode_server_hello
        - Src:             'lib/picotls.c:2828,20'
          Dst:             key_schedule_select_cipher
        - Src:             'lib/picotls.c:2830,9'
          Dst:             key_schedule_transform_post_ch1hash
        - Src:             'lib/picotls.c:2837,17'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2839,24'
          Dst:             client_ech_select_hello
        - Src:             'lib/picotls.c:2842,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2843,16'
          Dst:             handle_hello_retry_request
        - Src:             'lib/picotls.c:2847,43'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2846,16'
          Dst:             key_schedule_select_cipher
        - Src:             'lib/picotls.c:2857,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2859,20'
          Dst:             client_ech_select_hello
        - Src:             'lib/picotls.c:2864,5'
          Dst:             clear_ech
        - Src:             'lib/picotls.c:2876,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2880,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2885,16'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:2887,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:2894,20'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:2900,20'
          Dst:             setup_traffic_protection
    - functionName:    ntoh24
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_buffer_is_overflow
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5784
      functionLinenumberEnd: 5790
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_encrypt
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    encode64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    build_tls12_aad
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - size_t
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          62
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_record_header
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5035
      functionLinenumberEnd: 5045
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntoh16
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5037,20'
          Dst:             ntoh16
        - Src:             'lib/picotls.c:5038,19'
          Dst:             ntoh16
    - functionName:    handle_alert
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5773
      functionLinenumberEnd: 5781
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_decrypt
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_record
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5048
      functionLinenumberEnd: 5122
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          390
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - parse_record_header
        - ptls_buffer_init
        - ptls_buffer_reserve
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5057,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5051,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5070,20'
          Dst:             parse_record_header
        - Src:             'lib/picotls.c:5084,9'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:5085,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5095,16'
          Dst:             parse_record_header
        - Src:             'lib/picotls.c:5101,20'
          Dst:             ptls_buffer_reserve
    - functionName:    commit_record_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          101
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - buffer_encrypt_record
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:871,15'
          Dst:             buffer_encrypt_record
        - Src:             'lib/picotls.c:875,9'
          Dst:             __assert_fail
    - functionName:    buffer_encrypt_record
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 851
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          224
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - aead_encrypt
        - buffer_push_encrypted_records
        - ptls_buffer_reserve_aligned
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:822,20'
          Dst:             ptls_buffer_reserve_aligned
        - Src:             'lib/picotls.c:824,32'
          Dst:             aead_encrypt
        - Src:             'lib/picotls.c:825,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:843,11'
          Dst:             buffer_push_encrypted_records
    - functionName:    buffer_push_encrypted_records
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          528
      EdgeCount:       108
      CyclomaticComplexity: 24
      functionsReached:
        - __assert_fail
        - aead_encrypt
        - build_tls12_aad
        - encode64
        - ptls_aead_encrypt
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_buffer_reserve_aligned
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:773,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:773,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:773,13'
          Dst:             ptls_buffer_reserve_aligned
        - Src:             'lib/picotls.c:773,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:773,13'
          Dst:             encode64
        - Src:             'lib/picotls.c:773,13'
          Dst:             build_tls12_aad
        - Src:             'lib/picotls.c:773,13'
          Dst:             ptls_aead_encrypt
        - Src:             'lib/picotls.c:773,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:797,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:797,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:797,13'
          Dst:             ptls_buffer_reserve_aligned
        - Src:             'lib/picotls.c:797,13'
          Dst:             aead_encrypt
        - Src:             'lib/picotls.c:797,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    duplicate_stringlist
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6864
      functionLinenumberEnd: 6878
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6866,16'
          Dst:             strdup
        - Src:             'lib/picotls.c:6871,58'
          Dst:             strlen
    - functionName:    strdup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log_add_fd
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7173
      functionLinenumberEnd: 7243
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - float
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          286
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - duplicate_stringlist
        - inet_pton
        - memcmp
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - ptls_build_v4_mapped_v6_address
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7180,5'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:7182,19'
          Dst:             duplicate_stringlist
        - Src:             'lib/picotls.c:7186,17'
          Dst:             duplicate_stringlist
        - Src:             'lib/picotls.c:7192,88'
          Dst:             strlen
        - Src:             'lib/picotls.c:7202,18'
          Dst:             inet_pton
        - Src:             'lib/picotls.c:7204,22'
          Dst:             inet_pton
        - Src:             'lib/picotls.c:7206,17'
          Dst:             ptls_build_v4_mapped_v6_address
        - Src:             'lib/picotls.c:7208,17'
          Dst:             memcmp
        - Src:             'lib/picotls.c:7199,88'
          Dst:             strlen
        - Src:             'lib/picotls.c:7237,5'
          Dst:             pthread_mutex_unlock
    - functionName:    ptls_build_v4_mapped_v6_address
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6777
      functionLinenumberEnd: 6781
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log_num_lost
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7164
      functionLinenumberEnd: 7166
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log_init_conn_state
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7153
      functionLinenumberEnd: 7161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log__do_push_element_unsigned32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7028
      functionLinenumberEnd: 7030
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pushf_logbuf_or_invalidate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7029,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_signed64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7023
      functionLinenumberEnd: 7025
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pushf_logbuf_or_invalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7024,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_signed32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7018
      functionLinenumberEnd: 7020
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pushf_logbuf_or_invalidate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7019,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_unsafestr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6999
      functionLinenumberEnd: 7005
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          83
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - expand_logbuf_or_invalidate
        - ptls_jsonescape
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:7000,9'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7002,37'
          Dst:             ptls_jsonescape
    - functionName:    ptls_jsonescape
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6738
      functionLinenumberEnd: 6773
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          178
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - byte_to_hex
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:6743,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6764,23'
          Dst:             byte_to_hex
    - functionName:    ptls_ech_encode_config
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6696
      functionLinenumberEnd: 6716
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         173
      ICount:          829
      EdgeCount:       217
      CyclomaticComplexity: 46
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6699,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6700,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    handle_server_handshake_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5703
      functionLinenumberEnd: 5769
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          326
      EdgeCount:       72
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - handle_key_update
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_log__do_push_element_signed32
        - ptls_log__do_push_element_unsigned32
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
        - server_handle_certificate
        - server_handle_certificate_verify
        - server_handle_end_of_early_data
        - server_handle_finished
        - server_handle_hello
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5707,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:5746,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5711,19'
          Dst:             server_handle_hello
        - Src:             'lib/picotls.c:5718,19'
          Dst:             server_handle_certificate
        - Src:             'lib/picotls.c:5725,19'
          Dst:             server_handle_certificate_verify
        - Src:             'lib/picotls.c:5731,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5733,19'
          Dst:             server_handle_end_of_early_data
        - Src:             'lib/picotls.c:5740,19'
          Dst:             server_handle_finished
        - Src:             'lib/picotls.c:5748,19'
          Dst:             handle_key_update
        - Src:             'lib/picotls.c:5756,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log__do_push_element_unsigned32
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log__do_push_element_signed32
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:5763,5'
          Dst:             ptls_get_server_name
    - functionName:    handle_client_handshake_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5618
      functionLinenumberEnd: 5698
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          354
      EdgeCount:       73
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - client_handle_certificate
        - client_handle_certificate_request
        - client_handle_certificate_verify
        - client_handle_compressed_certificate
        - client_handle_encrypted_extensions
        - client_handle_finished
        - client_handle_hello
        - client_handle_new_session_ticket
        - handle_key_update
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_log__do_push_element_signed32
        - ptls_log__do_push_element_unsigned32
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5622,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:5645,9'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:5672,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5626,19'
          Dst:             client_handle_hello
        - Src:             'lib/picotls.c:5633,19'
          Dst:             client_handle_encrypted_extensions
        - Src:             'lib/picotls.c:5640,19'
          Dst:             client_handle_certificate_request
        - Src:             'lib/picotls.c:5647,19'
          Dst:             client_handle_certificate
        - Src:             'lib/picotls.c:5650,19'
          Dst:             client_handle_compressed_certificate
        - Src:             'lib/picotls.c:5659,19'
          Dst:             client_handle_certificate_verify
        - Src:             'lib/picotls.c:5666,19'
          Dst:             client_handle_finished
        - Src:             'lib/picotls.c:5674,19'
          Dst:             client_handle_new_session_ticket
        - Src:             'lib/picotls.c:5677,19'
          Dst:             handle_key_update
        - Src:             'lib/picotls.c:5685,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log__do_push_element_unsigned32
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log__do_push_element_signed32
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:5692,5'
          Dst:             ptls_get_server_name
    - functionName:    handle_handshake_record
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5797
      functionLinenumberEnd: 5859
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          338
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - message_buffer_is_overflow
        - ntoh24
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_buffer_reserve
        - ptls_iovec_init
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5827,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5810,13'
          Dst:             message_buffer_is_overflow
        - Src:             'lib/picotls.c:5812,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5823,31'
          Dst:             ntoh24
        - Src:             'lib/picotls.c:5826,32'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5833,13'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:5842,13'
          Dst:             message_buffer_is_overflow
        - Src:             'lib/picotls.c:5845,13'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:5846,24'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5855,9'
          Dst:             ptls_buffer_dispose
    - functionName:    commit_raw_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6579
      functionLinenumberEnd: 6595
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          112
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6589,9'
          Dst:             __assert_fail
    - functionName:    begin_raw_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6571
      functionLinenumberEnd: 6575
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_client_handle_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6638
      functionLinenumberEnd: 6652
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          113
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - handle_client_handshake_message
        - handle_handshake_record
        - ptls_get_read_epoch
        - send_client_hello
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6639,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6646,16'
          Dst:             send_client_hello
        - Src:             'lib/picotls.c:6648,9'
          Dst:             ptls_get_read_epoch
        - Src:             'lib/picotls.c:6651,12'
          Dst:             handle_handshake_record
        - Src:             'lib/picotls.c:6651,12'
          Dst:             handle_client_handshake_message
    - functionName:    ptls_get_read_epoch
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6599
      functionLinenumberEnd: 6627
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          119
      EdgeCount:       56
      CyclomaticComplexity: 29
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:6600,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6608,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6624,9'
          Dst:             __assert_fail
    - functionName:    ptls_server_handle_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6656
      functionLinenumberEnd: 6674
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          150
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - handle_handshake_record
        - handle_server_handshake_message
        - ptls_get_read_epoch
        - server_finish_handshake
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6657,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6664,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6665,16'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:6668,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6670,9'
          Dst:             ptls_get_read_epoch
        - Src:             'lib/picotls.c:6673,12'
          Dst:             handle_handshake_record
        - Src:             'lib/picotls.c:6673,12'
          Dst:             handle_server_handshake_message
    - functionName:    ptls_handle_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6631
      functionLinenumberEnd: 6633
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_client_handle_message
        - ptls_server_handle_message
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6632,29'
          Dst:             ptls_server_handle_message
        - Src:             'lib/picotls.c:6633,29'
          Dst:             ptls_client_handle_message
    - functionName:    get_time
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6551
      functionLinenumberEnd: 6554
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gettimeofday
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6553,5'
          Dst:             gettimeofday
    - functionName:    ptls_aead__build_iv
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6514
      functionLinenumberEnd: 6527
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead_set_iv
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2067
      functionLinenumberEnd: 2069
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead_get_iv
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2062
      functionLinenumberEnd: 2064
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead_xor_iv
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6503
      functionLinenumberEnd: 6511
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_aead_get_iv
        - ptls_aead_set_iv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6507,5'
          Dst:             ptls_aead_get_iv
        - Src:             'lib/picotls.c:6510,5'
          Dst:             ptls_aead_set_iv
    - functionName:    ptls_cipher_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6450
      functionLinenumberEnd: 6453
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_cipher_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6436
      functionLinenumberEnd: 6447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_calc_hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6291
      functionLinenumberEnd: 6299
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_export_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6201
      functionLinenumberEnd: 6237
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          212
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - ptls_calc_hash
        - ptls_hkdf_expand_label
        - ptls_iovec_init
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/picotls.c:6209,13'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6224,16'
          Dst:             ptls_calc_hash
        - Src:             'lib/picotls.c:6227,80'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6228,46'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6227,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:6230,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6231,34'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6230,11'
          Dst:             ptls_hkdf_expand_label
    - functionName:    ptls_get_record_overhead
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6174
      functionLinenumberEnd: 6182
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          50
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_update_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6166
      functionLinenumberEnd: 6170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6167,5'
          Dst:             __assert_fail
    - functionName:    update_send_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6123
      functionLinenumberEnd: 6139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          292
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - init_record_message_emitter
        - ptls__key_schedule_update_hash
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - update_traffic_key
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6127,5'
          Dst:             init_record_message_emitter
        - Src:             'lib/picotls.c:6130,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6130,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6130,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6130,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6130,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:6132,16'
          Dst:             update_traffic_key
    - functionName:    init_record_message_emitter
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6014
      functionLinenumberEnd: 6017
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_send
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6143
      functionLinenumberEnd: 6163
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - buffer_push_encrypted_records
        - update_send_key
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6144,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6156,20'
          Dst:             update_send_key
        - Src:             'lib/picotls.c:6162,12'
          Dst:             buffer_push_encrypted_records
    - functionName:    handle_input_tls12
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5949
      functionLinenumberEnd: 6011
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          267
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - build_tls12_aad
        - handle_alert
        - parse_record
        - ptls_aead_decrypt
        - ptls_buffer_dispose
        - ptls_buffer_reserve
        - ptls_decode64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5993,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5954,16'
          Dst:             parse_record
        - Src:             'lib/picotls.c:5956,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5964,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5965,20'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5980,5'
          Dst:             build_tls12_aad
        - Src:             'lib/picotls.c:5983,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5985,9'
          Dst:             ptls_aead_decrypt
        - Src:             'lib/picotls.c:6000,15'
          Dst:             handle_alert
        - Src:             'lib/picotls.c:6008,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_receive
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6083
      functionLinenumberEnd: 6119
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - handle_input
        - handle_input_tls12
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:6100,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6088,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6094,19'
          Dst:             handle_input_tls12
        - Src:             'lib/picotls.c:6096,19'
          Dst:             handle_input
    - functionName:    handle_input
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5863
      functionLinenumberEnd: 5946
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          454
      EdgeCount:       99
      CyclomaticComplexity: 25
      functionsReached:
        - __assert_fail
        - aead_decrypt
        - handle_alert
        - handle_handshake_record
        - parse_record
        - ptls_buffer_dispose
        - ptls_buffer_reserve
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5914,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5868,16'
          Dst:             parse_record
        - Src:             'lib/picotls.c:5870,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5887,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5889,20'
          Dst:             aead_decrypt
        - Src:             'lib/picotls.c:5910,15'
          Dst:             handle_handshake_record
        - Src:             'lib/picotls.c:5928,19'
          Dst:             handle_alert
        - Src:             'lib/picotls.c:5937,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_send_alert
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6185
      functionLinenumberEnd: 6197
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          225
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - buffer_encrypt_record
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6189,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6189,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6189,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6189,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6192,20'
          Dst:             buffer_encrypt_record
    - functionName:    ptls_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6020
      functionLinenumberEnd: 6080
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          280
      EdgeCount:       53
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - handle_input
        - init_record_message_emitter
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_send_alert
        - send_client_hello
        - server_finish_handshake
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:6030,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:6057,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6024,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6026,5'
          Dst:             init_record_message_emitter
        - Src:             'lib/picotls.c:6032,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6033,16'
          Dst:             send_client_hello
        - Src:             'lib/picotls.c:6036,16'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:6044,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:6050,15'
          Dst:             handle_input
        - Src:             'lib/picotls.c:6052,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6055,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:6072,17'
          Dst:             ptls_send_alert
    - functionName:    ptls_get_data_ptr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5603
      functionLinenumberEnd: 5604
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_is_psk_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5584
      functionLinenumberEnd: 5585
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_handshake_is_complete
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5579
      functionLinenumberEnd: 5580
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_get_negotiated_protocol
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5561
      functionLinenumberEnd: 5562
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_get_traffic_keys
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5530
      functionLinenumberEnd: 5539
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          89
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_traffic_keys
        - ptls_iovec_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5534,105'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5534,16'
          Dst:             get_traffic_keys
    - functionName:    ptls_get_cipher
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5517
      functionLinenumberEnd: 5518
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_get_client_random
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5512
      functionLinenumberEnd: 5513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_iovec_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5513,12'
          Dst:             ptls_iovec_init
    - functionName:    ptls_get_async_job
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5507
      functionLinenumberEnd: 5508
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_set_context
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5500
      functionLinenumberEnd: 5504
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_open_count
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5501,5'
          Dst:             update_open_count
        - Src:             'lib/picotls.c:5502,5'
          Dst:             update_open_count
    - functionName:    update_open_count
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5125
      functionLinenumberEnd: 5128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_get_context
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5495
      functionLinenumberEnd: 5496
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_exporter_master_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1492
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1489,5'
          Dst:             __assert_fail
    - functionName:    ptls_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5457
      functionLinenumberEnd: 5492
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          365
      EdgeCount:       60
      CyclomaticComplexity: 14
      functionsReached:
        - clear_ech
        - free_exporter_master_secret
        - key_schedule_free
        - ptls_aead_free
        - ptls_buffer_dispose
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_iovec_init
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
        - update_open_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:5459,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:5461,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:5462,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:5463,5'
          Dst:             free_exporter_master_secret
        - Src:             'lib/picotls.c:5464,5'
          Dst:             free_exporter_master_secret
        - Src:             'lib/picotls.c:5466,9'
          Dst:             key_schedule_free
        - Src:             'lib/picotls.c:5468,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:5470,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:5473,5'
          Dst:             clear_ech
        - Src:             'lib/picotls.c:5479,89'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5484,75'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5484,101'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5489,5'
          Dst:             update_open_count
    - functionName:    import_tls13_traffic_protection
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5341
      functionLinenumberEnd: 5354
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ptls_decode64
        - setup_traffic_protection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5347,9'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5350,9'
          Dst:             setup_traffic_protection
    - functionName:    import_tls12_traffic_protection
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5314
      functionLinenumberEnd: 5338
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          212
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - ptls_aead_new_direct
        - ptls_decode64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5325,9'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5328,13'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5334,21'
          Dst:             ptls_aead_new_direct
    - functionName:    ptls_set_server_name
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5547
      functionLinenumberEnd: 5558
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - duplicate_as_str
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5551,89'
          Dst:             strlen
        - Src:             'lib/picotls.c:5551,18'
          Dst:             duplicate_as_str
    - functionName:    ptls_import
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5357
      functionLinenumberEnd: 5453
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         159
      ICount:          885
      EdgeCount:       207
      CyclomaticComplexity: 50
      functionsReached:
        - import_tls12_traffic_protection
        - import_tls13_traffic_protection
        - key_schedule_new
        - new_instance
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_find_cipher_suite
        - ptls_free
        - ptls_is_server
        - ptls_set_negotiated_protocol
        - ptls_set_server_name
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5365,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5365,5'
          Dst:             new_instance
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_set_server_name
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_set_negotiated_protocol
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_find_cipher_suite
        - Src:             'lib/picotls.c:5365,5'
          Dst:             import_tls12_traffic_protection
        - Src:             'lib/picotls.c:5365,5'
          Dst:             import_tls12_traffic_protection
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_find_cipher_suite
        - Src:             'lib/picotls.c:5365,5'
          Dst:             key_schedule_new
        - Src:             'lib/picotls.c:5365,5'
          Dst:             import_tls13_traffic_protection
        - Src:             'lib/picotls.c:5365,5'
          Dst:             import_tls13_traffic_protection
        - Src:             'lib/picotls.c:5365,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5444,21'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:5449,13'
          Dst:             ptls_free
    - functionName:    new_instance
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5131
      functionLinenumberEnd: 5163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          254
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - ptls_log_init_conn_state
        - update_open_count
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5135,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5137,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5141,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5149,5'
          Dst:             update_open_count
        - Src:             'lib/picotls.c:5158,9'
          Dst:             ptls_log_init_conn_state
    - functionName:    ptls_get_protocol_version
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5522
      functionLinenumberEnd: 5527
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_export
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5280
      functionLinenumberEnd: 5310
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         196
      ICount:          1072
      EdgeCount:       247
      CyclomaticComplexity: 53
      functionsReached:
        - export_tls12_params
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - ptls_get_protocol_version
        - ptls_iovec_init
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5282,86'
          Dst:             strlen
        - Src:             'lib/picotls.c:5282,9'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5290,9'
          Dst:             ptls_get_protocol_version
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             strlen
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5291,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5300,20'
          Dst:             export_tls12_params
    - functionName:    export_tls12_params
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5219
      functionLinenumberEnd: 5236
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         203
      ICount:          1053
      EdgeCount:       254
      CyclomaticComplexity: 53
      functionsReached:
        - ptls_buffer__adjust_quic_blocksize
        - ptls_buffer__do_pushv
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    ptls_tls12_phash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6396
      functionLinenumberEnd: 6433
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          205
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - ptls_hmac_create
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:6401,17'
          Dst:             ptls_hmac_create
        - Src:             'lib/picotls.c:6406,35'
          Dst:             strlen
        - Src:             'lib/picotls.c:6414,39'
          Dst:             strlen
    - functionName:    ptls_build_tls12_export_params
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5242
      functionLinenumberEnd: 5276
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          222
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - export_tls12_params
        - ptls_iovec_init
        - ptls_tls12_phash
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5243,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5249,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5253,71'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5254,48'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5253,14'
          Dst:             ptls_tls12_phash
        - Src:             'lib/picotls.c:5270,11'
          Dst:             export_tls12_params
    - functionName:    ptls_server_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5183
      functionLinenumberEnd: 5190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - new_instance
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_log__do_push_element_bool
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5184,19'
          Dst:             new_instance
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:5189,5'
          Dst:             ptls_get_server_name
    - functionName:    ptls_client_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5166
      functionLinenumberEnd: 5179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          169
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - log_client_random
        - new_instance
        - ptls_get_log_state
        - ptls_get_server_name
        - ptls_iovec_init
        - ptls_log__do_push_element_bool
        - ptls_log__do_push_element_unsigned64
        - ptls_log__do_write_end
        - ptls_log__do_write_start
        - ptls_log_conn_maybe_active
        - ptls_log_point_maybe_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5167,19'
          Dst:             new_instance
        - Src:             'lib/picotls.c:5170,5'
          Dst:             log_client_random
        - Src:             'lib/picotls.c:5173,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_get_server_name
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:5178,5'
          Dst:             ptls_get_server_name
    - functionName:    ptls_buffer_push_asn1_ubigint
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          212
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - ptls_buffer__adjust_asn1_blocksize
        - ptls_buffer__do_pushv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:674,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:675,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:675,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:675,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:675,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:675,5'
          Dst:             ptls_buffer__adjust_asn1_blocksize
    - functionName:    ptls_buffer__adjust_asn1_blocksize
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - fprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:659,5'
          Dst:             fprintf
        - Src:             'lib/picotls.c:660,5'
          Dst:             abort
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    build_suite_id
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          178
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - ptls_buffer__do_pushv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:32,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:33,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:35,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:36,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:37,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:38,9'
          Dst:             ptls_buffer__do_pushv
    - functionName:    ptls_buffer_dispose
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2022
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_buffer__release_memory
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2023,5'
          Dst:             ptls_buffer__release_memory
    - functionName:    labeled_expand
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          165
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - build_suite_id
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_hkdf_expand
        - ptls_iovec_init
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:77,5'
          Dst:             __assert_fail
        - Src:             'lib/hpke.c:79,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/hpke.c:81,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:82,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:83,16'
          Dst:             build_suite_id
        - Src:             'lib/hpke.c:85,5'
          Dst:             strlen
        - Src:             'lib/hpke.c:85,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:86,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:89,28'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:88,11'
          Dst:             ptls_hkdf_expand
        - Src:             'lib/hpke.c:92,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_buffer_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2012
      functionLinenumberEnd: 2019
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2013,5'
          Dst:             __assert_fail
    - functionName:    ptls_iovec_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2008
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    labeled_extract
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - build_suite_id
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_hkdf_extract
        - ptls_iovec_init
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:54,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/hpke.c:56,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:57,16'
          Dst:             build_suite_id
        - Src:             'lib/hpke.c:59,5'
          Dst:             strlen
        - Src:             'lib/hpke.c:59,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:60,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:63,29'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:62,11'
          Dst:             ptls_hkdf_extract
        - Src:             'lib/hpke.c:66,5'
          Dst:             ptls_buffer_dispose
    - functionName:    extract_and_expand
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          134
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - labeled_expand
        - labeled_extract
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:103,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/hpke.c:105,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:106,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:108,52'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:108,16'
          Dst:             labeled_extract
        - Src:             'lib/hpke.c:110,62'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:111,31'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:110,16'
          Dst:             labeled_expand
        - Src:             'lib/hpke.c:115,5'
          Dst:             ptls_buffer_dispose
    - functionName:    dh_derive
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - extract_and_expand
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:122,12'
          Dst:             extract_and_expand
    - functionName:    dh_decap
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - dh_derive
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:159,9'
          Dst:             __assert_fail
        - Src:             'lib/hpke.c:163,16'
          Dst:             dh_derive
    - functionName:    ptls_hpke_setup_base_r
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dh_decap
        - key_schedule
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:254,16'
          Dst:             dh_decap
        - Src:             'lib/hpke.c:257,16'
          Dst:             key_schedule
    - functionName:    key_schedule
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          319
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - labeled_expand
        - labeled_extract
        - ptls_aead_new_direct
        - ptls_buffer__do_pushv
        - ptls_buffer_dispose
        - ptls_buffer_init
        - ptls_buffer_reserve
        - ptls_iovec_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:186,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/hpke.c:189,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/hpke.c:190,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/hpke.c:191,99'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:192,47'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:191,16'
          Dst:             labeled_extract
        - Src:             'lib/hpke.c:195,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/hpke.c:196,99'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:196,16'
          Dst:             labeled_extract
        - Src:             'lib/hpke.c:202,53'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:203,32'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:202,16'
          Dst:             labeled_extract
        - Src:             'lib/hpke.c:207,73'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:208,31'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:207,16'
          Dst:             labeled_expand
        - Src:             'lib/hpke.c:210,79'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:211,45'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:210,16'
          Dst:             labeled_expand
        - Src:             'lib/hpke.c:214,12'
          Dst:             ptls_aead_new_direct
        - Src:             'lib/hpke.c:217,5'
          Dst:             ptls_buffer_dispose
    - functionName:    dh_encap
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          159
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - dh_derive
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:130,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:133,9'
          Dst:             __assert_fail
        - Src:             'lib/hpke.c:134,9'
          Dst:             __assert_fail
        - Src:             'lib/hpke.c:138,16'
          Dst:             dh_derive
        - Src:             'lib/hpke.c:148,17'
          Dst:             ptls_iovec_init
    - functionName:    ptls_hpke_setup_base_s
      functionSourceFile: '/src/picotls/lib/hpke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          121
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - dh_encap
        - key_schedule
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hpke.c:230,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/hpke.c:232,16'
          Dst:             dh_encap
        - Src:             'lib/hpke.c:235,16'
          Dst:             key_schedule
        - Src:             'lib/hpke.c:242,17'
          Dst:             ptls_iovec_init
    - functionName:    picotls_quiclb_merge_output
      functionSourceFile: '/src/picotls/lib/./quiclb-impl.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          122
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    picotls_quiclb_one_round
      functionSourceFile: '/src/picotls/lib/./quiclb-impl.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          66
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    picotls_quiclb_split_input
      functionSourceFile: '/src/picotls/lib/./quiclb-impl.h'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    picotls_quiclb_cipher_aes
      functionSourceFile: '/src/picotls/lib/./quiclb-impl.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_cipher_encrypt
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/./quiclb-impl.h:43,5'
          Dst:             ptls_cipher_encrypt
    - functionName:    ptls_cipher_encrypt
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2057
      functionLinenumberEnd: 2059
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    picotls_quiclb_transform
      functionSourceFile: '/src/picotls/lib/./quiclb-impl.h'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          159
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - picotls_quiclb_merge_output
        - picotls_quiclb_one_round
        - picotls_quiclb_split_input
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/./quiclb-impl.h:132,5'
          Dst:             __assert_fail
        - Src:             'lib/./quiclb-impl.h:146,9'
          Dst:             picotls_quiclb_split_input
        - Src:             'lib/./quiclb-impl.h:147,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:148,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:149,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:150,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:151,9'
          Dst:             picotls_quiclb_merge_output
        - Src:             'lib/./quiclb-impl.h:153,9'
          Dst:             picotls_quiclb_split_input
        - Src:             'lib/./quiclb-impl.h:154,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:155,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:156,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:157,9'
          Dst:             picotls_quiclb_one_round
        - Src:             'lib/./quiclb-impl.h:158,9'
          Dst:             picotls_quiclb_merge_output
    - functionName:    quiclb_decrypt
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1458
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - picotls_quiclb_cipher_aes
        - picotls_quiclb_transform
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1460,5'
          Dst:             picotls_quiclb_transform
        - Src:             'lib/openssl.c:1460,5'
          Dst:             picotls_quiclb_cipher_aes
    - functionName:    quiclb_encrypt
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1452
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - picotls_quiclb_cipher_aes
        - picotls_quiclb_transform
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1454,5'
          Dst:             picotls_quiclb_transform
        - Src:             'lib/openssl.c:1454,5'
          Dst:             picotls_quiclb_cipher_aes
    - functionName:    picotls_quiclb_do_init
      functionSourceFile: '/src/picotls/lib/./quiclb-impl.h'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    quiclb_dispose
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1449
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_cipher_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1448,5'
          Dst:             ptls_cipher_free
    - functionName:    sha512_clone
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1692
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_hash_clone_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1692,1'
          Dst:             ptls_hash_clone_memcpy
    - functionName:    ptls_hash_clone_memcpy
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2136
      functionLinenumberEnd: 2138
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha512_final
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1692
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - SHA512_Final
        - SHA512_Init
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/openssl.c:1692,1'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:1692,1'
          Dst:             SHA512_Final
        - Src:             'lib/openssl.c:1692,1'
          Dst:             SHA512_Final
        - Src:             'lib/openssl.c:1692,1'
          Dst:             SHA512_Init
        - Src:             'lib/openssl.c:1692,1'
          Dst:             __assert_fail
    - functionName:    SHA512_Final
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SHA512_Init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha512_update
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1692
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SHA512_Update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1692,1'
          Dst:             SHA512_Update
    - functionName:    SHA512_Update
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha384_clone
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1689
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_hash_clone_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1689,1'
          Dst:             ptls_hash_clone_memcpy
    - functionName:    sha384_final
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1689
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - SHA384_Final
        - SHA384_Init
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/openssl.c:1689,1'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:1689,1'
          Dst:             SHA384_Final
        - Src:             'lib/openssl.c:1689,1'
          Dst:             SHA384_Final
        - Src:             'lib/openssl.c:1689,1'
          Dst:             SHA384_Init
        - Src:             'lib/openssl.c:1689,1'
          Dst:             __assert_fail
    - functionName:    SHA384_Final
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SHA384_Init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha384_update
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1689
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SHA384_Update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1689,1'
          Dst:             SHA384_Update
    - functionName:    SHA384_Update
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha256_clone
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1686
      functionLinenumberEnd: 1686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_hash_clone_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1686,1'
          Dst:             ptls_hash_clone_memcpy
    - functionName:    sha256_final
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1686
      functionLinenumberEnd: 1686
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - SHA256_Final
        - SHA256_Init
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/openssl.c:1686,1'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:1686,1'
          Dst:             SHA256_Final
        - Src:             'lib/openssl.c:1686,1'
          Dst:             SHA256_Final
        - Src:             'lib/openssl.c:1686,1'
          Dst:             SHA256_Init
        - Src:             'lib/openssl.c:1686,1'
          Dst:             __assert_fail
    - functionName:    SHA256_Final
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SHA256_Init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha256_update
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1686
      functionLinenumberEnd: 1686
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SHA256_Update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1686,1'
          Dst:             SHA256_Update
    - functionName:    SHA256_Update
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_cipher_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2052
      functionLinenumberEnd: 2054
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_do_decrypt
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1577
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          195
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - EVP_CIPHER_CTX_ctrl
        - EVP_DecryptFinal_ex
        - EVP_DecryptInit_ex
        - EVP_DecryptUpdate
        - __assert_fail
        - ptls_aead__build_iv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1560,5'
          Dst:             ptls_aead__build_iv
        - Src:             'lib/openssl.c:1561,11'
          Dst:             EVP_DecryptInit_ex
        - Src:             'lib/openssl.c:1562,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1564,15'
          Dst:             EVP_DecryptUpdate
        - Src:             'lib/openssl.c:1565,9'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1567,11'
          Dst:             EVP_DecryptUpdate
        - Src:             'lib/openssl.c:1568,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1570,10'
          Dst:             EVP_CIPHER_CTX_ctrl
        - Src:             'lib/openssl.c:1572,10'
          Dst:             EVP_DecryptFinal_ex
    - functionName:    EVP_DecryptInit_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DecryptUpdate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_CIPHER_CTX_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DecryptFinal_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead__do_encrypt_v
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2120
      functionLinenumberEnd: 2127
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          86
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead__do_encrypt
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2107
      functionLinenumberEnd: 2116
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_cipher_encrypt
        - ptls_cipher_init
        - ptls_iovec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2108,26'
          Dst:             ptls_iovec_init
        - Src:             'include/picotls.h:2112,9'
          Dst:             ptls_cipher_init
        - Src:             'include/picotls.h:2114,9'
          Dst:             ptls_cipher_encrypt
    - functionName:    ptls_iovec_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2008
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_do_encrypt_final
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1533
      functionLinenumberEnd: 1546
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_CIPHER_CTX_ctrl
        - EVP_EncryptFinal_ex
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1539,11'
          Dst:             EVP_EncryptFinal_ex
        - Src:             'lib/openssl.c:1540,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1542,11'
          Dst:             EVP_CIPHER_CTX_ctrl
        - Src:             'lib/openssl.c:1543,5'
          Dst:             __assert_fail
    - functionName:    EVP_EncryptFinal_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_do_encrypt_update
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1522
      functionLinenumberEnd: 1529
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_EncryptUpdate
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1526,11'
          Dst:             EVP_EncryptUpdate
        - Src:             'lib/openssl.c:1527,5'
          Dst:             __assert_fail
    - functionName:    EVP_EncryptUpdate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_do_encrypt_init
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1505
      functionLinenumberEnd: 1519
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_EncryptInit_ex
        - EVP_EncryptUpdate
        - __assert_fail
        - ptls_aead__build_iv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1510,5'
          Dst:             ptls_aead__build_iv
        - Src:             'lib/openssl.c:1511,11'
          Dst:             EVP_EncryptInit_ex
        - Src:             'lib/openssl.c:1512,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1516,15'
          Dst:             EVP_EncryptUpdate
        - Src:             'lib/openssl.c:1517,9'
          Dst:             __assert_fail
    - functionName:    EVP_EncryptInit_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_set_iv
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1498
      functionLinenumberEnd: 1502
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_get_iv
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1491
      functionLinenumberEnd: 1495
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_dispose_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1483
      functionLinenumberEnd: 1488
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_CIPHER_CTX_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1487,9'
          Dst:             EVP_CIPHER_CTX_free
    - functionName:    EVP_CIPHER_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1580
      functionLinenumberEnd: 1631
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          194
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - EVP_CIPHER_CTX_ctrl
        - EVP_CIPHER_CTX_new
        - EVP_DecryptInit_ex
        - EVP_EncryptInit_ex
        - aead_dispose_crypto
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1604,25'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'lib/openssl.c:1609,14'
          Dst:             EVP_EncryptInit_ex
        - Src:             'lib/openssl.c:1614,14'
          Dst:             EVP_DecryptInit_ex
        - Src:             'lib/openssl.c:1619,10'
          Dst:             EVP_CIPHER_CTX_ctrl
        - Src:             'lib/openssl.c:1629,5'
          Dst:             aead_dispose_crypto
    - functionName:    EVP_CIPHER_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cipher_do_init
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_EncryptInit_ex
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1260,11'
          Dst:             EVP_EncryptInit_ex
        - Src:             'lib/openssl.c:1261,5'
          Dst:             __assert_fail
    - functionName:    cipher_dispose
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1251
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_CIPHER_CTX_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1253,5'
          Dst:             EVP_CIPHER_CTX_free
    - functionName:    cipher_decrypt
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1305
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DecryptUpdate
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1302,32'
          Dst:             EVP_DecryptUpdate
        - Src:             'lib/openssl.c:1303,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1304,5'
          Dst:             __assert_fail
    - functionName:    cipher_encrypt
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1297
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_EncryptUpdate
        - __assert_fail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1294,32'
          Dst:             EVP_EncryptUpdate
        - Src:             'lib/openssl.c:1295,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1296,5'
          Dst:             __assert_fail
    - functionName:    cipher_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - EVP_CIPHER_CTX_free
        - EVP_CIPHER_CTX_new
        - EVP_CIPHER_CTX_set_padding
        - EVP_DecryptInit_ex
        - EVP_EncryptInit_ex
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1273,21'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'lib/openssl.c:1277,14'
          Dst:             EVP_EncryptInit_ex
        - Src:             'lib/openssl.c:1280,14'
          Dst:             EVP_DecryptInit_ex
        - Src:             'lib/openssl.c:1282,9'
          Dst:             EVP_CIPHER_CTX_set_padding
        - Src:             'lib/openssl.c:1287,5'
          Dst:             EVP_CIPHER_CTX_free
    - functionName:    EVP_CIPHER_CTX_set_padding
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x9_62_key_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          198
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - ECDH_compute_key
        - EC_GROUP_get_degree
        - EC_KEY_free
        - EC_KEY_get0_public_key
        - EC_POINT_free
        - ecdh_generate_key
        - x9_62_decode_point
        - x9_62_encode_point
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:424,23'
          Dst:             x9_62_decode_point
        - Src:             'lib/openssl.c:430,20'
          Dst:             ecdh_generate_key
        - Src:             'lib/openssl.c:436,46'
          Dst:             EC_KEY_get0_public_key
        - Src:             'lib/openssl.c:436,20'
          Dst:             x9_62_encode_point
        - Src:             'lib/openssl.c:442,20'
          Dst:             EC_GROUP_get_degree
        - Src:             'lib/openssl.c:449,9'
          Dst:             ECDH_compute_key
        - Src:             'lib/openssl.c:458,9'
          Dst:             EC_POINT_free
        - Src:             'lib/openssl.c:460,9'
          Dst:             EC_KEY_free
    - functionName:    x9_62_decode_point
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - EC_POINT_free
        - EC_POINT_new
        - EC_POINT_oct2point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:252,18'
          Dst:             EC_POINT_new
        - Src:             'lib/openssl.c:254,10'
          Dst:             EC_POINT_oct2point
        - Src:             'lib/openssl.c:255,9'
          Dst:             EC_POINT_free
    - functionName:    ecdh_generate_key
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - EC_KEY_free
        - EC_KEY_generate_key
        - EC_KEY_new
        - EC_KEY_set_group
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:212,16'
          Dst:             EC_KEY_new
        - Src:             'lib/openssl.c:214,10'
          Dst:             EC_KEY_set_group
        - Src:             'lib/openssl.c:214,43'
          Dst:             EC_KEY_generate_key
        - Src:             'lib/openssl.c:215,9'
          Dst:             EC_KEY_free
    - functionName:    EC_KEY_get0_public_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x9_62_encode_point
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - EC_POINT_point2oct
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:266,20'
          Dst:             EC_POINT_point2oct
        - Src:             'lib/openssl.c:270,9'
          Dst:             EC_POINT_point2oct
    - functionName:    EC_GROUP_get_degree
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ECDH_compute_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_POINT_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_KEY_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_POINT_point2oct
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_KEY_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_KEY_set_group
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_KEY_generate_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_POINT_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_POINT_oct2point
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_pop_free
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    OPENSSL_sk_pop_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    verify_sign
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1731
      functionLinenumberEnd: 1806
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          247
      EdgeCount:       58
      CyclomaticComplexity: 18
      functionsReached:
        - EVP_DigestUpdate
        - EVP_DigestVerify
        - EVP_DigestVerifyFinal
        - EVP_DigestVerifyInit
        - EVP_MD_CTX_free
        - EVP_MD_CTX_new
        - EVP_PKEY_free
        - EVP_PKEY_id
        - RSA_pkey_ctx_ctrl
        - ptls_openssl_lookup_signature_schemes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1741,19'
          Dst:             ptls_openssl_lookup_signature_schemes
        - Src:             'lib/openssl.c:1752,16'
          Dst:             EVP_MD_CTX_new
        - Src:             'lib/openssl.c:1758,9'
          Dst:             EVP_PKEY_id
        - Src:             'lib/openssl.c:1760,13'
          Dst:             EVP_DigestVerifyInit
        - Src:             'lib/openssl.c:1764,13'
          Dst:             EVP_DigestVerify
        - Src:             'lib/openssl.c:1771,13'
          Dst:             EVP_DigestVerifyInit
        - Src:             'lib/openssl.c:1776,13'
          Dst:             EVP_PKEY_id
        - Src:             'lib/openssl.c:1777,17'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'lib/openssl.c:1781,17'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'lib/openssl.c:1785,17'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'lib/openssl.c:1790,13'
          Dst:             EVP_DigestUpdate
        - Src:             'lib/openssl.c:1794,13'
          Dst:             EVP_DigestVerifyFinal
        - Src:             'lib/openssl.c:1804,9'
          Dst:             EVP_MD_CTX_free
        - Src:             'lib/openssl.c:1805,5'
          Dst:             EVP_PKEY_free
    - functionName:    ptls_openssl_lookup_signature_schemes
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached:
        - EC_GROUP_get_curve_name
        - EC_KEY_free
        - EC_KEY_get0_group
        - EVP_PKEY_get1_EC_KEY
        - EVP_PKEY_id
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/openssl.c:148,5'
          Branch Sides:    []
        - Branch String:   'lib/openssl.c:154,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:148,13'
          Dst:             EVP_PKEY_id
        - Src:             'lib/openssl.c:153,25'
          Dst:             EVP_PKEY_get1_EC_KEY
        - Src:             'lib/openssl.c:154,41'
          Dst:             EC_KEY_get0_group
        - Src:             'lib/openssl.c:154,17'
          Dst:             EC_GROUP_get_curve_name
        - Src:             'lib/openssl.c:171,9'
          Dst:             EC_KEY_free
    - functionName:    EVP_MD_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_id
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestVerifyInit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestVerify
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_pkey_ctx_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestUpdate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestVerifyFinal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_MD_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_get1_EC_KEY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_KEY_get0_group
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_GROUP_get_curve_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_sha512
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_sha384
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_sha256
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    verify_cert_chain
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1882
      functionLinenumberEnd: 1947
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          188
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - X509_STORE_CTX_free
        - X509_STORE_CTX_get0_param
        - X509_STORE_CTX_get_error
        - X509_STORE_CTX_init
        - X509_STORE_CTX_new
        - X509_VERIFY_PARAM_set1_host
        - X509_VERIFY_PARAM_set1_ip_asc
        - X509_VERIFY_PARAM_set_depth
        - X509_VERIFY_PARAM_set_hostflags
        - X509_VERIFY_PARAM_set_purpose
        - X509_verify_cert
        - ptls_server_name_is_ipaddr
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/openssl.c:1914,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:1888,23'
          Dst:             X509_STORE_CTX_new
        - Src:             'lib/openssl.c:1892,9'
          Dst:             X509_STORE_CTX_init
        - Src:             'lib/openssl.c:1898,37'
          Dst:             X509_STORE_CTX_get0_param
        - Src:             'lib/openssl.c:1899,9'
          Dst:             X509_VERIFY_PARAM_set_purpose
        - Src:             'lib/openssl.c:1900,9'
          Dst:             X509_VERIFY_PARAM_set_depth
        - Src:             'lib/openssl.c:1903,17'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/openssl.c:1904,17'
          Dst:             X509_VERIFY_PARAM_set1_ip_asc
        - Src:             'lib/openssl.c:1906,66'
          Dst:             strlen
        - Src:             'lib/openssl.c:1906,17'
          Dst:             X509_VERIFY_PARAM_set1_host
        - Src:             'lib/openssl.c:1907,17'
          Dst:             X509_VERIFY_PARAM_set_hostflags
        - Src:             'lib/openssl.c:1912,9'
          Dst:             X509_verify_cert
        - Src:             'lib/openssl.c:1913,26'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'lib/openssl.c:1946,9'
          Dst:             X509_STORE_CTX_free
    - functionName:    X509_STORE_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_get0_param
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_VERIFY_PARAM_set_purpose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_VERIFY_PARAM_set_depth
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_VERIFY_PARAM_set1_ip_asc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_VERIFY_PARAM_set1_host
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_VERIFY_PARAM_set_hostflags
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_push
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_push
    - functionName:    OPENSSL_sk_push
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    to_x509
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1725
      functionLinenumberEnd: 1727
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - d2i_X509
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1727,12'
          Dst:             d2i_X509
    - functionName:    d2i_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_new_null
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_new_null
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_new_null
    - functionName:    OPENSSL_sk_new_null
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    async_sign_ctx_new
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1104
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ASYNC_WAIT_CTX_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1113,21'
          Dst:             ASYNC_WAIT_CTX_new
    - functionName:    async_sign_ctx_free
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ASYNC_WAIT_CTX_free
        - ASYNC_start_job
        - EVP_MD_CTX_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1082,16'
          Dst:             ASYNC_start_job
        - Src:             'lib/openssl.c:1086,5'
          Dst:             EVP_MD_CTX_free
        - Src:             'lib/openssl.c:1087,5'
          Dst:             ASYNC_WAIT_CTX_free
    - functionName:    async_sign_ctx_get_fd
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1092
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ASYNC_WAIT_CTX_get_all_fds
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1097,5'
          Dst:             ASYNC_WAIT_CTX_get_all_fds
        - Src:             'lib/openssl.c:1098,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1099,5'
          Dst:             ASYNC_WAIT_CTX_get_all_fds
    - functionName:    ASYNC_WAIT_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASYNC_WAIT_CTX_get_all_fds
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASYNC_start_job
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASYNC_WAIT_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_sign_async_job
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1124
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestSignFinal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1124,12'
          Dst:             EVP_DigestSignFinal
    - functionName:    EVP_DigestSignFinal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_sign
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          277
      EdgeCount:       63
      CyclomaticComplexity: 20
      functionsReached:
        - EVP_DigestSign
        - EVP_DigestSignFinal
        - EVP_DigestSignInit
        - EVP_DigestUpdate
        - EVP_MD_CTX_free
        - EVP_MD_CTX_new
        - EVP_PKEY_id
        - RSA_pkey_ctx_ctrl
        - async_sign_ctx_new
        - do_sign_async
        - ptls_buffer_reserve
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1168,16'
          Dst:             EVP_MD_CTX_new
        - Src:             'lib/openssl.c:1173,9'
          Dst:             EVP_DigestSignInit
        - Src:             'lib/openssl.c:1179,9'
          Dst:             EVP_PKEY_id
        - Src:             'lib/openssl.c:1181,13'
          Dst:             EVP_DigestSign
        - Src:             'lib/openssl.c:1185,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/openssl.c:1187,13'
          Dst:             EVP_DigestSign
        - Src:             'lib/openssl.c:1194,13'
          Dst:             EVP_PKEY_id
        - Src:             'lib/openssl.c:1195,17'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'lib/openssl.c:1199,17'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'lib/openssl.c:1203,17'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'lib/openssl.c:1208,13'
          Dst:             EVP_DigestUpdate
        - Src:             'lib/openssl.c:1212,13'
          Dst:             EVP_DigestSignFinal
        - Src:             'lib/openssl.c:1220,27'
          Dst:             async_sign_ctx_new
        - Src:             'lib/openssl.c:1224,20'
          Dst:             do_sign_async
        - Src:             'lib/openssl.c:1228,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/openssl.c:1230,13'
          Dst:             EVP_DigestSignFinal
        - Src:             'lib/openssl.c:1241,9'
          Dst:             EVP_MD_CTX_free
    - functionName:    EVP_DigestSignInit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestSign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_sign_async
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - ASYNC_start_job
        - async_sign_ctx_free
        - do_sign_async_job
        - ptls_buffer__do_pushv
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/openssl.c:1132,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:1132,13'
          Dst:             ASYNC_start_job
        - Src:             'lib/openssl.c:1132,13'
          Dst:             do_sign_async_job
        - Src:             'lib/openssl.c:1143,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/openssl.c:1152,5'
          Dst:             async_sign_ctx_free
    - functionName:    evp_keyex_free
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CRYPTO_free
        - EVP_PKEY_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:505,9'
          Dst:             EVP_PKEY_free
        - Src:             'lib/openssl.c:507,9'
          Dst:             CRYPTO_free
    - functionName:    CRYPTO_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    evp_keyex_on_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          248
      EdgeCount:       53
      CyclomaticComplexity: 17
      functionsReached:
        - EVP_PKEY_CTX_free
        - EVP_PKEY_CTX_new
        - EVP_PKEY_copy_parameters
        - EVP_PKEY_derive
        - EVP_PKEY_derive_init
        - EVP_PKEY_derive_set_peer
        - EVP_PKEY_free
        - EVP_PKEY_new
        - EVP_PKEY_set1_tls_encodedpoint
        - evp_keyex_free
        - ptls_iovec_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:523,15'
          Dst:             ptls_iovec_init
        - Src:             'lib/openssl.c:562,20'
          Dst:             EVP_PKEY_new
        - Src:             'lib/openssl.c:566,9'
          Dst:             EVP_PKEY_copy_parameters
        - Src:             'lib/openssl.c:570,9'
          Dst:             EVP_PKEY_set1_tls_encodedpoint
        - Src:             'lib/openssl.c:574,19'
          Dst:             EVP_PKEY_CTX_new
        - Src:             'lib/openssl.c:578,9'
          Dst:             EVP_PKEY_derive_init
        - Src:             'lib/openssl.c:582,9'
          Dst:             EVP_PKEY_derive_set_peer
        - Src:             'lib/openssl.c:586,9'
          Dst:             EVP_PKEY_derive
        - Src:             'lib/openssl.c:594,9'
          Dst:             EVP_PKEY_derive
        - Src:             'lib/openssl.c:602,9'
          Dst:             EVP_PKEY_CTX_free
        - Src:             'lib/openssl.c:604,9'
          Dst:             EVP_PKEY_free
        - Src:             'lib/openssl.c:607,19'
          Dst:             ptls_iovec_init
        - Src:             'lib/openssl.c:610,9'
          Dst:             evp_keyex_free
    - functionName:    EVP_PKEY_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_copy_parameters
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_set1_tls_encodedpoint
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_derive_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_derive_set_peer
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_derive
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ecdh_calc_secret
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ECDH_compute_key
        - EC_GROUP_get_degree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:227,19'
          Dst:             EC_GROUP_get_degree
        - Src:             'lib/openssl.c:232,9'
          Dst:             ECDH_compute_key
    - functionName:    x9_62_on_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EC_KEY_get0_group
        - EC_POINT_free
        - ecdh_calc_secret
        - x9_62_decode_point
        - x9_62_free_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:297,29'
          Dst:             EC_KEY_get0_group
        - Src:             'lib/openssl.c:306,23'
          Dst:             x9_62_decode_point
        - Src:             'lib/openssl.c:310,16'
          Dst:             ecdh_calc_secret
        - Src:             'lib/openssl.c:315,9'
          Dst:             EC_POINT_free
        - Src:             'lib/openssl.c:317,9'
          Dst:             x9_62_free_context
    - functionName:    x9_62_free_context
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BN_CTX_free
        - EC_KEY_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:288,9'
          Dst:             EC_KEY_free
        - Src:             'lib/openssl.c:290,9'
          Dst:             BN_CTX_free
    - functionName:    BN_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x9_62_setup_pubkey
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EC_KEY_get0_group
        - EC_KEY_get0_public_key
        - x9_62_encode_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:349,29'
          Dst:             EC_KEY_get0_group
        - Src:             'lib/openssl.c:350,30'
          Dst:             EC_KEY_get0_public_key
        - Src:             'lib/openssl.c:351,30'
          Dst:             x9_62_encode_point
    - functionName:    x9_62_create_context
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - BN_CTX_new
        - x9_62_free_context
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:333,27'
          Dst:             BN_CTX_new
        - Src:             'lib/openssl.c:341,9'
          Dst:             x9_62_free_context
    - functionName:    BN_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    quiclb_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_cipher_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1470,24'
          Dst:             ptls_cipher_new
    - functionName:    aes128ecb_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1308
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_aes_128_ecb
        - cipher_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1309,50'
          Dst:             EVP_aes_128_ecb
        - Src:             'lib/openssl.c:1309,12'
          Dst:             cipher_setup_crypto
    - functionName:    EVP_aes_128_ecb
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bfecb_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1434
      functionLinenumberEnd: 1435
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_bf_ecb
        - cipher_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1435,50'
          Dst:             EVP_bf_ecb
        - Src:             'lib/openssl.c:1435,12'
          Dst:             cipher_setup_crypto
    - functionName:    EVP_bf_ecb
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_chacha20poly1305_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1678
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_chacha20_poly1305
        - aead_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1679,52'
          Dst:             EVP_chacha20_poly1305
        - Src:             'lib/openssl.c:1679,12'
          Dst:             aead_setup_crypto
    - functionName:    EVP_chacha20_poly1305
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    chacha20_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1424
      functionLinenumberEnd: 1425
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_chacha20
        - cipher_encrypt
        - cipher_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1425,45'
          Dst:             EVP_chacha20
        - Src:             'lib/openssl.c:1425,12'
          Dst:             cipher_setup_crypto
        - Src:             'lib/openssl.c:1425,12'
          Dst:             cipher_encrypt
    - functionName:    EVP_chacha20
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha512_create
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1692
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SHA512_Init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1692,1'
          Dst:             SHA512_Init
    - functionName:    sha384_create
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1689
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SHA384_Init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1689,1'
          Dst:             SHA384_Init
    - functionName:    sha256_create
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1686
      functionLinenumberEnd: 1686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SHA256_Init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1686,1'
          Dst:             SHA256_Init
    - functionName:    aead_aes256gcm_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1639
      functionLinenumberEnd: 1640
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_aes_256_gcm
        - aead_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1640,52'
          Dst:             EVP_aes_256_gcm
        - Src:             'lib/openssl.c:1640,12'
          Dst:             aead_setup_crypto
    - functionName:    EVP_aes_256_gcm
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aes256ctr_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1323
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_aes_256_ctr
        - cipher_encrypt
        - cipher_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1324,45'
          Dst:             EVP_aes_256_ctr
        - Src:             'lib/openssl.c:1324,12'
          Dst:             cipher_setup_crypto
        - Src:             'lib/openssl.c:1324,12'
          Dst:             cipher_encrypt
    - functionName:    EVP_aes_256_ctr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aes256ecb_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_aes_256_ecb
        - cipher_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1314,50'
          Dst:             EVP_aes_256_ecb
        - Src:             'lib/openssl.c:1314,12'
          Dst:             cipher_setup_crypto
    - functionName:    EVP_aes_256_ecb
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aead_aes128gcm_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1634
      functionLinenumberEnd: 1635
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_aes_128_gcm
        - aead_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1635,52'
          Dst:             EVP_aes_128_gcm
        - Src:             'lib/openssl.c:1635,12'
          Dst:             aead_setup_crypto
    - functionName:    EVP_aes_128_gcm
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aes128ctr_setup_crypto
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_aes_128_ctr
        - cipher_encrypt
        - cipher_setup_crypto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1319,45'
          Dst:             EVP_aes_128_ctr
        - Src:             'lib/openssl.c:1319,12'
          Dst:             cipher_setup_crypto
        - Src:             'lib/openssl.c:1319,12'
          Dst:             cipher_encrypt
    - functionName:    EVP_aes_128_ctr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    evp_keyex_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          151
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - evp_keyex_create
        - evp_keyex_on_exchange
        - ptls_iovec_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:688,18'
          Dst:             ptls_iovec_init
        - Src:             'lib/openssl.c:690,16'
          Dst:             evp_keyex_create
        - Src:             'lib/openssl.c:698,11'
          Dst:             evp_keyex_on_exchange
        - Src:             'lib/openssl.c:699,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:703,46'
          Dst:             ptls_iovec_init
        - Src:             'lib/openssl.c:703,9'
          Dst:             evp_keyex_on_exchange
        - Src:             'lib/openssl.c:706,22'
          Dst:             ptls_iovec_init
    - functionName:    evp_keyex_create
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - EVP_PKEY_CTX_free
        - EVP_PKEY_CTX_new_id
        - EVP_PKEY_free
        - EVP_PKEY_keygen
        - EVP_PKEY_keygen_init
        - evp_keyex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:655,19'
          Dst:             EVP_PKEY_CTX_new_id
        - Src:             'lib/openssl.c:659,9'
          Dst:             EVP_PKEY_keygen_init
        - Src:             'lib/openssl.c:663,9'
          Dst:             EVP_PKEY_keygen
        - Src:             'lib/openssl.c:669,16'
          Dst:             evp_keyex_init
        - Src:             'lib/openssl.c:676,9'
          Dst:             EVP_PKEY_free
        - Src:             'lib/openssl.c:678,9'
          Dst:             EVP_PKEY_CTX_free
    - functionName:    EVP_PKEY_CTX_new_id
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_keygen_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_keygen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    evp_keyex_init
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - EVP_PKEY_get1_tls_encodedpoint
        - evp_keyex_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:632,34'
          Dst:             EVP_PKEY_get1_tls_encodedpoint
        - Src:             'lib/openssl.c:643,9'
          Dst:             evp_keyex_free
    - functionName:    EVP_PKEY_get1_tls_encodedpoint
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    secp_key_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - BN_CTX_free
        - BN_CTX_new
        - EC_GROUP_free
        - EC_GROUP_new_by_curve_name
        - x9_62_key_exchange
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:476,18'
          Dst:             EC_GROUP_new_by_curve_name
        - Src:             'lib/openssl.c:480,19'
          Dst:             BN_CTX_new
        - Src:             'lib/openssl.c:485,11'
          Dst:             x9_62_key_exchange
        - Src:             'lib/openssl.c:489,9'
          Dst:             BN_CTX_free
        - Src:             'lib/openssl.c:491,9'
          Dst:             EC_GROUP_free
    - functionName:    EC_GROUP_new_by_curve_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EC_GROUP_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x9_62_create_key_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - EC_GROUP_free
        - EC_GROUP_new_by_curve_name
        - ecdh_generate_key
        - x9_62_create_context
        - x9_62_free_context
        - x9_62_setup_pubkey
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:363,18'
          Dst:             EC_GROUP_new_by_curve_name
        - Src:             'lib/openssl.c:367,16'
          Dst:             x9_62_create_context
        - Src:             'lib/openssl.c:369,25'
          Dst:             ecdh_generate_key
        - Src:             'lib/openssl.c:373,16'
          Dst:             x9_62_setup_pubkey
        - Src:             'lib/openssl.c:379,9'
          Dst:             EC_GROUP_free
        - Src:             'lib/openssl.c:384,13'
          Dst:             x9_62_free_context
    - functionName:    ptls_openssl_decrypt_ticket
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2156
      functionLinenumberEnd: 2221
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          244
      EdgeCount:       46
      CyclomaticComplexity: 15
      functionsReached:
        - EVP_CIPHER_CTX_free
        - EVP_CIPHER_CTX_new
        - EVP_DecryptFinal_ex
        - EVP_DecryptUpdate
        - HMAC_CTX_free
        - HMAC_CTX_new
        - HMAC_Final
        - HMAC_Update
        - HMAC_size
        - ptls_buffer_reserve
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2161,17'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'lib/openssl.c:2165,17'
          Dst:             HMAC_CTX_new
        - Src:             'lib/openssl.c:2182,24'
          Dst:             HMAC_size
        - Src:             'lib/openssl.c:2189,10'
          Dst:             HMAC_Update
        - Src:             'lib/openssl.c:2189,51'
          Dst:             HMAC_Final
        - Src:             'lib/openssl.c:2201,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/openssl.c:2203,10'
          Dst:             EVP_DecryptUpdate
        - Src:             'lib/openssl.c:2208,10'
          Dst:             EVP_DecryptFinal_ex
        - Src:             'lib/openssl.c:2218,9'
          Dst:             EVP_CIPHER_CTX_free
        - Src:             'lib/openssl.c:2220,9'
          Dst:             HMAC_CTX_free
    - functionName:    HMAC_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_size
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_Update
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_Final
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_openssl_encrypt_ticket
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2096
      functionLinenumberEnd: 2151
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          234
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - EVP_CIPHER_CTX_free
        - EVP_CIPHER_CTX_new
        - EVP_EncryptFinal_ex
        - EVP_EncryptUpdate
        - HMAC_CTX_free
        - HMAC_CTX_new
        - HMAC_Final
        - HMAC_Update
        - HMAC_size
        - __assert_fail
        - ptls_buffer_reserve
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2102,17'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'lib/openssl.c:2106,17'
          Dst:             HMAC_CTX_new
        - Src:             'lib/openssl.c:2111,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/openssl.c:2124,10'
          Dst:             EVP_EncryptUpdate
        - Src:             'lib/openssl.c:2129,10'
          Dst:             EVP_EncryptFinal_ex
        - Src:             'lib/openssl.c:2136,10'
          Dst:             HMAC_Update
        - Src:             'lib/openssl.c:2136,84'
          Dst:             HMAC_Final
        - Src:             'lib/openssl.c:2140,12'
          Dst:             HMAC_size
        - Src:             'lib/openssl.c:2142,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:2148,9'
          Dst:             EVP_CIPHER_CTX_free
        - Src:             'lib/openssl.c:2150,9'
          Dst:             HMAC_CTX_free
    - functionName:    ptls_openssl_raw_pubkey_dispose_verify_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2087
      functionLinenumberEnd: 2089
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_PKEY_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2088,5'
          Dst:             EVP_PKEY_free
    - functionName:    verify_raw_cert
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2048
      functionLinenumberEnd: 2077
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          128
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - CRYPTO_free
        - EVP_PKEY_up_ref
        - __assert_fail
        - i2d_PUBKEY
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2053,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:2058,13'
          Dst:             i2d_PUBKEY
        - Src:             'lib/openssl.c:2071,5'
          Dst:             EVP_PKEY_up_ref
        - Src:             'lib/openssl.c:2076,5'
          Dst:             CRYPTO_free
    - functionName:    i2d_PUBKEY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_up_ref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_openssl_raw_pubkey_init_verify_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2081
      functionLinenumberEnd: 2084
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_PKEY_up_ref
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2082,5'
          Dst:             EVP_PKEY_up_ref
    - functionName:    ptls_openssl_dispose_verify_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2020
      functionLinenumberEnd: 2022
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - X509_STORE_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2021,5'
          Dst:             X509_STORE_free
    - functionName:    X509_STORE_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_openssl_create_default_certificate_store
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2025
      functionLinenumberEnd: 2043
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - X509_LOOKUP_ctrl
        - X509_LOOKUP_file
        - X509_LOOKUP_hash_dir
        - X509_STORE_add_lookup
        - X509_STORE_free
        - X509_STORE_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2029,18'
          Dst:             X509_STORE_new
        - Src:             'lib/openssl.c:2031,48'
          Dst:             X509_LOOKUP_file
        - Src:             'lib/openssl.c:2031,19'
          Dst:             X509_STORE_add_lookup
        - Src:             'lib/openssl.c:2033,5'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'lib/openssl.c:2034,48'
          Dst:             X509_LOOKUP_hash_dir
        - Src:             'lib/openssl.c:2034,19'
          Dst:             X509_STORE_add_lookup
        - Src:             'lib/openssl.c:2036,5'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'lib/openssl.c:2041,9'
          Dst:             X509_STORE_free
    - functionName:    X509_STORE_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_add_lookup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_hash_dir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    verify_cert
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1953
      functionLinenumberEnd: 2000
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          202
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - X509_free
        - X509_get_pubkey
        - ptls_is_server
        - sk_X509_new_null
        - sk_X509_pop_free
        - sk_X509_push
        - to_x509
        - verify_cert_chain
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1956,29'
          Dst:             sk_X509_new_null
        - Src:             'lib/openssl.c:1963,21'
          Dst:             to_x509
        - Src:             'lib/openssl.c:1968,28'
          Dst:             to_x509
        - Src:             'lib/openssl.c:1973,13'
          Dst:             sk_X509_push
        - Src:             'lib/openssl.c:1975,64'
          Dst:             ptls_is_server
        - Src:             'lib/openssl.c:1975,15'
          Dst:             verify_cert_chain
        - Src:             'lib/openssl.c:1989,25'
          Dst:             X509_get_pubkey
        - Src:             'lib/openssl.c:1997,9'
          Dst:             sk_X509_pop_free
        - Src:             'lib/openssl.c:1997,9'
          Dst:             X509_free
        - Src:             'lib/openssl.c:1999,9'
          Dst:             X509_free
    - functionName:    X509_get_pubkey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_openssl_init_verify_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2004
      functionLinenumberEnd: 2017
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - X509_STORE_up_ref
        - ptls_openssl_create_default_certificate_store
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:2008,9'
          Dst:             X509_STORE_up_ref
        - Src:             'lib/openssl.c:2012,33'
          Dst:             ptls_openssl_create_default_certificate_store
    - functionName:    X509_STORE_up_ref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_value
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_value
    - functionName:    OPENSSL_sk_value
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    serialize_cert
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1827
      functionLinenumberEnd: 1838
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - i2d_X509
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1828,15'
          Dst:             i2d_X509
        - Src:             'lib/openssl.c:1829,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1834,16'
          Dst:             i2d_X509
        - Src:             'lib/openssl.c:1835,5'
          Dst:             __assert_fail
    - functionName:    i2d_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_num
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_num
    - functionName:    OPENSSL_sk_num
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_openssl_load_certificates
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1841
      functionLinenumberEnd: 1877
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          212
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - serialize_cert
        - sk_X509_num
        - sk_X509_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1843,64'
          Dst:             sk_X509_num
        - Src:             'lib/openssl.c:1846,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1853,20'
          Dst:             serialize_cert
        - Src:             'lib/openssl.c:1858,26'
          Dst:             sk_X509_num
        - Src:             'lib/openssl.c:1859,39'
          Dst:             sk_X509_value
        - Src:             'lib/openssl.c:1859,24'
          Dst:             serialize_cert
        - Src:             'lib/openssl.c:1864,5'
          Dst:             __assert_fail
    - functionName:    ptls_openssl_dispose_sign_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1822
      functionLinenumberEnd: 1824
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_PKEY_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1823,5'
          Dst:             EVP_PKEY_free
    - functionName:    sign_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1696
      functionLinenumberEnd: 1722
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - do_sign
        - do_sign_async
        - ptls_openssl_select_signature_scheme
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1705,16'
          Dst:             do_sign_async
        - Src:             'lib/openssl.c:1710,19'
          Dst:             ptls_openssl_select_signature_scheme
        - Src:             'lib/openssl.c:1717,9'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:1721,12'
          Dst:             do_sign
    - functionName:    ptls_openssl_select_signature_scheme
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_openssl_init_sign_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1810
      functionLinenumberEnd: 1819
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_PKEY_up_ref
        - ptls_openssl_lookup_signature_schemes
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:1813,26'
          Dst:             ptls_openssl_lookup_signature_schemes
        - Src:             'lib/openssl.c:1815,5'
          Dst:             EVP_PKEY_up_ref
    - functionName:    x9_62_init_key
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - x9_62_create_context
        - x9_62_free_context
        - x9_62_setup_pubkey
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:396,16'
          Dst:             x9_62_create_context
        - Src:             'lib/openssl.c:399,16'
          Dst:             x9_62_setup_pubkey
        - Src:             'lib/openssl.c:408,13'
          Dst:             x9_62_free_context
    - functionName:    ptls_openssl_create_key_exchange
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1059
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       16
      CyclomaticComplexity: 2
      functionsReached:
        - EC_GROUP_get_curve_name
        - EC_KEY_free
        - EC_KEY_get0_group
        - EVP_PKEY_get1_EC_KEY
        - EVP_PKEY_id
        - EVP_PKEY_up_ref
        - evp_keyex_init
        - x9_62_init_key
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/openssl.c:1012,5'
          Branch Sides:    []
        - Branch String:   'lib/openssl.c:1020,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/openssl.c:1012,18'
          Dst:             EVP_PKEY_id
        - Src:             'lib/openssl.c:1016,25'
          Dst:             EVP_PKEY_get1_EC_KEY
        - Src:             'lib/openssl.c:1020,41'
          Dst:             EC_KEY_get0_group
        - Src:             'lib/openssl.c:1020,17'
          Dst:             EC_GROUP_get_curve_name
        - Src:             'lib/openssl.c:1035,13'
          Dst:             EC_KEY_free
        - Src:             'lib/openssl.c:1040,20'
          Dst:             x9_62_init_key
        - Src:             'lib/openssl.c:1041,13'
          Dst:             EC_KEY_free
        - Src:             'lib/openssl.c:1050,20'
          Dst:             evp_keyex_init
        - Src:             'lib/openssl.c:1052,9'
          Dst:             EVP_PKEY_up_ref
    - functionName:    ptls_openssl_random_bytes
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - RAND_bytes
        - abort
        - fprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/openssl.c:201,15'
          Dst:             RAND_bytes
        - Src:             'lib/openssl.c:203,9'
          Dst:             fprintf
        - Src:             'lib/openssl.c:204,9'
          Dst:             abort
    - functionName:    RAND_bytes
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
...
