---
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: 2043
      functionLinenumberEnd: 2046
      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:2044,5'
          Dst:             ptls_buffer__release_memory
    - functionName:    ptls_buffer_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2040
      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:2034,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:    122
      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: 2017
      functionLinenumberEnd: 2018
      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:2018,24'
          Dst:             ptls_server_new
        - Src:             'include/picotls.h:2018,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: 4149
      functionLinenumberEnd: 4150
      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:4150,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: 3956
      functionLinenumberEnd: 4007
      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:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3959,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3959,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    ptls_buffer__do_pushv
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 642
      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:637,16'
          Dst:             ptls_buffer_reserve
    - functionName:    ptls_decode_quicint
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 981
      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: 928
      functionLinenumberEnd: 934
      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:931,14'
          Dst:             ntoh16
    - functionName:    ptls_buffer__adjust_quic_blocksize
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 662
      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:647,22'
          Dst:             ptls_encode_quicint
        - Src:             'lib/picotls.c:652,20'
          Dst:             ptls_buffer_reserve
    - functionName:    ptls_encode_quicint
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2049
      functionLinenumberEnd: 2069
      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:2054,17'
          Dst:             __assert_fail
    - functionName:    ptls_buffer_reserve
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 591
      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:591,12'
          Dst:             ptls_buffer_reserve_aligned
    - functionName:    ptls_buffer_reserve_aligned
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 629
      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:613,17'
          Dst:             posix_memalign
        - Src:             'lib/picotls.c:621,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: 574
      functionLinenumberEnd: 587
      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: 6574
      functionLinenumberEnd: 6577
      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: 529
      functionLinenumberEnd: 530
      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: 3598
      functionLinenumberEnd: 3624
      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:3601,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:3601,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3601,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3601,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3601,5'
          Dst:             memchr
        - Src:             'lib/picotls.c:3601,5'
          Dst:             ptls_iovec_init
    - functionName:    ptls_decode8
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 920
      functionLinenumberEnd: 925
      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: 2022
      functionLinenumberEnd: 2029
      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: 4159
      functionLinenumberEnd: 4288
      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:4190,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:4168,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:4176,17'
          Dst:             memcmp
        - Src:             'lib/picotls.c:4199,13'
          Dst:             decode_session_identifier
        - Src:             'lib/picotls.c:4219,19'
          Dst:             memcmp
        - Src:             'lib/picotls.c:4226,22'
          Dst:             vec_is_string
        - Src:             'lib/picotls.c:4248,18'
          Dst:             vec_is_string
        - Src:             'lib/picotls.c:4269,37'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4271,16'
          Dst:             derive_secret_with_empty_digest
        - Src:             'lib/picotls.c:4274,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4275,16'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:4286,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_buffer_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2040
      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:2034,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: 1765
      functionLinenumberEnd: 1798
      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:1768,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1768,5'
          Dst:             memcmp
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1768,5'
          Dst:             ptls_iovec_init
    - functionName:    key_schedule_extract
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1347
      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:1333,15'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1337,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1338,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1336,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:1344,29'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1343,11'
          Dst:             ptls_hkdf_extract
    - functionName:    derive_secret_with_empty_digest
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1466
      functionLinenumberEnd: 1467
      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:1467,12'
          Dst:             derive_secret_with_hash
    - functionName:    ptls__key_schedule_update_hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1400
      functionLinenumberEnd: 1415
      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: 1817
      functionLinenumberEnd: 1838
      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:1823,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1824,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1822,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:1826,17'
          Dst:             ptls_hmac_create
    - functionName:    ptls_buffer_dispose
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2043
      functionLinenumberEnd: 2046
      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:2044,5'
          Dst:             ptls_buffer__release_memory
    - functionName:    mem_equal
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6582
      functionLinenumberEnd: 6589
      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: 6415
      functionLinenumberEnd: 6435
      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:6420,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:6422,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6423,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6423,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:6423,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6423,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:6423,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6423,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6429,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6429,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6429,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6431,58'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6431,11'
          Dst:             ptls_hkdf_expand
        - Src:             'lib/picotls.c:6434,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_hmac_create
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6346
      functionLinenumberEnd: 6365
      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:6349,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6362,5'
          Dst:             hmac_apply_key
    - functionName:    hmac_update
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6291
      functionLinenumberEnd: 6294
      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: 6308
      functionLinenumberEnd: 6332
      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:6320,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6311,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6315,9'
          Dst:             hmac_apply_key
        - Src:             'lib/picotls.c:6326,9'
          Dst:             hmac_apply_key
        - Src:             'lib/picotls.c:6329,9'
          Dst:             __assert_fail
    - functionName:    hmac_apply_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6297
      functionLinenumberEnd: 6305
      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: 6382
      functionLinenumberEnd: 6411
      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:6389,25'
          Dst:             ptls_hmac_create
    - functionName:    derive_secret_with_hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1452
      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:1448,38'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1449,38'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1447,15'
          Dst:             ptls_hkdf_expand_label
    - functionName:    ptls_hkdf_extract
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6368
      functionLinenumberEnd: 6379
      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:6372,16'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6374,17'
          Dst:             ptls_hmac_create
    - functionName:    ptls_decode64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 961
      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:958,14'
          Dst:             ntoh64
    - functionName:    ptls_decode32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 952
      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:949,14'
          Dst:             ntoh32
    - functionName:    ntoh32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 544
      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: 550
      functionLinenumberEnd: 552
      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: 1424
      functionLinenumberEnd: 1427
      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:1425,5'
          Dst:             __assert_fail
    - functionName:    select_negotiated_group
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3629
      functionLinenumberEnd: 3651
      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:3632,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3632,5'
          Dst:             ptls_decode16
    - functionName:    key_schedule_update_ch1hash_prefix
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1421
      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:1420,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    calc_cookie_signature
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4293
      functionLinenumberEnd: 4328
      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:4297,17'
          Dst:             ptls_hmac_create
        - Src:             'lib/picotls.c:4315,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4316,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:4316,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4319,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4321,5'
          Dst:             __assert_fail
    - functionName:    select_key_share
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2097
      functionLinenumberEnd: 2128
      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:2110,20'
          Dst:             decode_key_share_entry
    - functionName:    decode_key_share_entry
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2080
      functionLinenumberEnd: 2091
      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:2083,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2085,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2085,5'
          Dst:             ptls_iovec_init
    - functionName:    select_cipher
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2065
      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:2034,20'
          Dst:             ptls_decode16
    - functionName:    certificate_type_exists
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4331
      functionLinenumberEnd: 4340
      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: 4079
      functionLinenumberEnd: 4093
      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: 4012
      functionLinenumberEnd: 4066
      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:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4023,5'
          Dst:             rebuild_ch_inner_extensions
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4023,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    check_client_hello_constraints
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4097
      functionLinenumberEnd: 4146
      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:4106,10'
          Dst:             is_supported_version
        - Src:             'lib/picotls.c:4113,24'
          Dst:             call_on_client_hello_cb
    - functionName:    is_supported_version
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 461
      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: 3655
      functionLinenumberEnd: 3951
      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:3717,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:3717,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:3717,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:3661,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3677,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3677,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3687,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3687,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3697,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3717,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             client_hello_decode_server_name
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             decode_signature_algorithms
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3717,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3717,5'
          Dst:             should_collect_unknown_extension
        - Src:             'lib/picotls.c:3717,5'
          Dst:             collect_unknown_extension
    - functionName:    extension_bitmap_testandset
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 525
      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: 2005
      functionLinenumberEnd: 2020
      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:2008,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2008,5'
          Dst:             ptls_decode16
    - functionName:    should_collect_unknown_extension
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2958
      functionLinenumberEnd: 2959
      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: 2964
      functionLinenumberEnd: 2977
      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:2967,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2973,25'
          Dst:             ptls_iovec_init
    - functionName:    server_handle_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5021
      functionLinenumberEnd: 5036
      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:5024,16'
          Dst:             verify_finished
        - Src:             'lib/picotls.c:5029,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:5032,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    verify_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1841
      functionLinenumberEnd: 1859
      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:1850,16'
          Dst:             calc_verify_data
    - functionName:    setup_traffic_protection
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1648
      functionLinenumberEnd: 1689
      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:1656,20'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:1662,32'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:1663,16'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1662,5'
          Dst:             log_secret
        - Src:             'lib/picotls.c:1673,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:1674,22'
          Dst:             ptls_aead_new
    - functionName:    derive_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1456
      functionLinenumberEnd: 1462
      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:1460,15'
          Dst:             derive_secret_with_hash
    - functionName:    ptls_is_server
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6604
      functionLinenumberEnd: 6605
      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: 984
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          175
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - ptls_get_log_state
        - 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_getsni_ptls
        - ptls_log_point_maybe_active
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:988,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log__do_push_element_safestr
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:988,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:991,71'
          Dst:             ptls_hexdump
    - functionName:    ptls_aead_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6541
      functionLinenumberEnd: 6544
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_aead_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6519
      functionLinenumberEnd: 6520
      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:6520,49'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6520,12'
          Dst:             new_aead
    - functionName:    new_aead
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6501
      functionLinenumberEnd: 6514
      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:6509,16'
          Dst:             get_traffic_keys
        - Src:             'lib/picotls.c:6511,11'
          Dst:             ptls_aead_new_direct
    - functionName:    get_traffic_keys
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1635
      functionLinenumberEnd: 1644
      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:1638,16'
          Dst:             get_traffic_key
        - Src:             'lib/picotls.c:1639,16'
          Dst:             get_traffic_key
    - functionName:    ptls_aead_new_direct
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6524
      functionLinenumberEnd: 6538
      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: 1628
      functionLinenumberEnd: 1630
      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:1629,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1629,12'
          Dst:             ptls_hkdf_expand_label
    - functionName:    ptls_log_point_maybe_active
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1990
      functionLinenumberEnd: 1994
      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:1993,9'
          Dst:             ptls_log__recalc_point
    - functionName:    ptls_get_log_state
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5652
      functionLinenumberEnd: 5654
      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_log_getsni_ptls
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1985
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptls_log_conn_maybe_active
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2006
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptls_log__recalc_conn
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:2009,9'
          Dst:             ptls_log__recalc_conn
    - functionName:    ptls_log__do_write_start
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7094
      functionLinenumberEnd: 7134
      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:7095,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7096,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:7099,28'
          Dst:             strchr
        - Src:             'lib/picotls.c:7100,19'
          Dst:             snprintf
        - Src:             'lib/picotls.c:7106,80'
          Dst:             syscall
        - Src:             'lib/picotls.c:7106,26'
          Dst:             sprintf
        - Src:             'lib/picotls.c:7120,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7127,9'
          Dst:             gettimeofday
        - Src:             'lib/picotls.c:7128,20'
          Dst:             snprintf
        - Src:             'lib/picotls.c:7131,5'
          Dst:             __assert_fail
    - functionName:    ptls_log__do_push_element_unsigned64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7076
      functionLinenumberEnd: 7078
      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:7077,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_safestr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7032
      functionLinenumberEnd: 7039
      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:7033,9'
          Dst:             expand_logbuf_or_invalidate
    - functionName:    ptls_log__do_write_end
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7138
      functionLinenumberEnd: 7191
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          311
      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:7139,10'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7144,5'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:7148,9'
          Dst:             ptls_log__recalc_point
        - Src:             'lib/picotls.c:7151,9'
          Dst:             ptls_log__recalc_conn
        - Src:             'lib/picotls.c:7160,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7170,24'
          Dst:             write
        - Src:             'lib/picotls.c:7170,96'
          Dst:             __errno_location
        - Src:             'lib/picotls.c:7174,48'
          Dst:             __errno_location
        - Src:             'lib/picotls.c:7174,67'
          Dst:             __errno_location
        - Src:             'lib/picotls.c:7179,13'
          Dst:             close_log_fd
        - Src:             'lib/picotls.c:7183,5'
          Dst:             pthread_mutex_unlock
        - Src:             'lib/picotls.c:7186,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:7188,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:7189,5'
          Dst:             __assert_fail
    - functionName:    ptls_hexdump
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6771
      functionLinenumberEnd: 6778
      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:6776,15'
          Dst:             byte_to_hex
    - functionName:    byte_to_hex
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6764
      functionLinenumberEnd: 6767
      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: 7000
      functionLinenumberEnd: 7014
      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:7004,9'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:7005,9'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:7006,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: 6957
      functionLinenumberEnd: 6973
      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:6959,9'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:6965,54'
          Dst:             is_in_stringlist
        - Src:             'lib/picotls.c:6972,9'
          Dst:             pthread_mutex_unlock
    - functionName:    ptls_log__recalc_conn
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6976
      functionLinenumberEnd: 6997
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          171
      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:6978,9'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:6986,17'
          Dst:             is_in_stringlist
        - Src:             'lib/picotls.c:6987,17'
          Dst:             is_in_addresslist
        - Src:             'lib/picotls.c:6996,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: 6889
      functionLinenumberEnd: 6905
      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:6890,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6892,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: 6925
      functionLinenumberEnd: 6936
      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:6933,13'
          Dst:             strcmp
        - Src:             'lib/picotls.c:6932,69'
          Dst:             strlen
    - functionName:    is_in_addresslist
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6939
      functionLinenumberEnd: 6954
      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:6942,9'
          Dst:             memcmp
        - Src:             'lib/picotls.c:6945,9'
          Dst:             memcmp
        - Src:             'lib/picotls.c:6948,50'
          Dst:             memcmp
        - Src:             'lib/picotls.c:6949,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: 7018
      functionLinenumberEnd: 7029
      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:7019,10'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7024,13'
          Dst:             vsnprintf
        - Src:             'lib/picotls.c:7027,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:    ptls_log_getsni_cb_ptls
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1985
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptls_get_server_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/picotls.h:1985,1'
          Dst:             ptls_get_server_name
    - functionName:    ptls_get_server_name
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5586
      functionLinenumberEnd: 5587
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    server_handle_end_of_early_data
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5006
      functionLinenumberEnd: 5017
      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:5009,16'
          Dst:             commission_handshake_secret
        - Src:             'lib/picotls.c:5012,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    commission_handshake_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1702
      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:1693,19'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:1695,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1702,12'
          Dst:             setup_traffic_protection
    - functionName:    server_handle_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3484
      functionLinenumberEnd: 3492
      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:3485,15'
          Dst:             handle_certificate_verify
    - functionName:    handle_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3436
      functionLinenumberEnd: 3468
      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:3445,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3447,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3447,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3452,21'
          Dst:             build_certificate_verify_signdata
        - Src:             'lib/picotls.c:3454,84'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3465,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    build_certificate_verify_signdata
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1802
      functionLinenumberEnd: 1813
      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:1807,44'
          Dst:             strlen
        - Src:             'lib/picotls.c:1808,16'
          Dst:             strlen
        - Src:             'lib/picotls.c:1811,5'
          Dst:             __assert_fail
    - functionName:    server_handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3417
      functionLinenumberEnd: 3433
      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:3420,16'
          Dst:             handle_certificate
        - Src:             'lib/picotls.c:3423,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3293
      functionLinenumberEnd: 3341
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         148
      ICount:          791
      EdgeCount:       191
      CyclomaticComplexity: 45
      functionsReached:
        - extension_bitmap_testandset
        - ptls_decode16
        - ptls_decode_quicint
        - ptls_iovec_init
        - ptls_is_server
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3299,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3306,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3306,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3326,14'
          Dst:             ptls_is_server
    - functionName:    server_handle_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4344
      functionLinenumberEnd: 4939
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1831
      ICount:          9958
      EdgeCount:       2333
      CyclomaticComplexity: 504
      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_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_getsni_ptls
        - 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:4403,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:4413,16'
          Dst:             decode_client_hello
        - Src:             'lib/picotls.c:4416,16'
          Dst:             check_client_hello_constraints
        - Src:             'lib/picotls.c:4420,9'
          Dst:             log_client_random
        - Src:             'lib/picotls.c:4448,57'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:4453,13'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:4464,17'
          Dst:             ptls_aead_decrypt
        - Src:             'lib/picotls.c:4468,28'
          Dst:             rebuild_ch_inner
        - Src:             'lib/picotls.c:4474,27'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4476,28'
          Dst:             decode_client_hello
        - Src:             'lib/picotls.c:4479,28'
          Dst:             check_client_hello_constraints
        - Src:             'lib/picotls.c:4490,17'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:4495,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4510,20'
          Dst:             call_on_client_hello_cb
        - Src:             'lib/picotls.c:4516,14'
          Dst:             certificate_type_exists
        - Src:             'lib/picotls.c:4530,24'
          Dst:             strlen
        - Src:             'lib/picotls.c:4531,47'
          Dst:             memcmp
        - Src:             'lib/picotls.c:4540,20'
          Dst:             select_cipher
        - Src:             'lib/picotls.c:4546,38'
          Dst:             key_schedule_new
        - Src:             'lib/picotls.c:4561,9'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:4561,9'
          Dst:             select_key_share
        - Src:             'lib/picotls.c:4573,28'
          Dst:             calc_cookie_signature
        - Src:             'lib/picotls.c:4581,13'
          Dst:             key_schedule_update_ch1hash_prefix
        - Src:             'lib/picotls.c:4582,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4583,13'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4588,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4606,24'
          Dst:             select_negotiated_group
        - Src:             'lib/picotls.c:4609,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4610,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4615,80'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4617,17'
          Dst:             key_schedule_transform_post_ch1hash
        - Src:             'lib/picotls.c:4618,17'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4621,13'
          Dst:             key_schedule_extract_ch1hash
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4621,13'
          Dst:             calc_cookie_signature
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ech_calc_confirmation
        - Src:             'lib/picotls.c:4621,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4677,28'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:4691,16'
          Dst:             report_unknown_extensions
        - Src:             'lib/picotls.c:4699,38'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4698,20'
          Dst:             try_psk_handshake
        - Src:             'lib/picotls.c:4718,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4720,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4721,53'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4721,13'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4727,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4731,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4764,20'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:4766,20'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4777,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4778,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_is_ech_handshake
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ech_calc_confirmation
        - Src:             'lib/picotls.c:4786,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4820,5'
          Dst:             clear_ech
        - Src:             'lib/picotls.c:4822,16'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:4826,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4827,5'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4828,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4831,20'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:4837,20'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             push_additional_extensions
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4844,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             push_signature_algorithms
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:4884,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:4917,78'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4917,20'
          Dst:             send_certificate
        - Src:             'lib/picotls.c:4921,20'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:4925,20'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:4937,5'
          Dst:             ptls_buffer_dispose
    - functionName:    log_client_random
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1706
      functionLinenumberEnd: 1713
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - ptls_get_log_state
        - 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_getsni_ptls
        - ptls_log_point_maybe_active
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log__do_push_element_hexdump
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:1712,5'
          Dst:             ptls_log__do_write_end
    - functionName:    ptls_log__do_push_element_bool
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7081
      functionLinenumberEnd: 7091
      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:7082,9'
          Dst:             expand_logbuf_or_invalidate
    - functionName:    ptls_aead_decrypt
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2152
      functionLinenumberEnd: 2153
      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: 1274
      functionLinenumberEnd: 1326
      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:1322,5'
          Dst:             key_schedule_free
    - functionName:    ptls_is_ech_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5633
      functionLinenumberEnd: 5644
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    key_schedule_transform_post_ch1hash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1443
      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: 1231
      functionLinenumberEnd: 1258
      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:1246,65'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1247,34'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1246,16'
          Dst:             ptls_hkdf_extract
        - Src:             'lib/picotls.c:1249,70'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1250,46'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1249,16'
          Dst:             ptls_hkdf_expand_label
    - functionName:    push_change_cipher_spec
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1947
      functionLinenumberEnd: 1968
      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:1963,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1963,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1963,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1963,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    report_unknown_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2980
      functionLinenumberEnd: 2987
      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:2982,9'
          Dst:             __assert_fail
    - functionName:    derive_exporter_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1471
      functionLinenumberEnd: 1489
      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:1478,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1482,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:1486,16'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1485,5'
          Dst:             log_secret
    - functionName:    clear_ech
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1014
      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:1000,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:1006,27'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1012,33'
          Dst:             ptls_iovec_init
    - functionName:    push_additional_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1972
      functionLinenumberEnd: 1983
      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:1978,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1978,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1978,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1978,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    push_signature_algorithms
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1987
      functionLinenumberEnd: 2001
      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:1994,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1994,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1994,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    send_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3205
      functionLinenumberEnd: 3230
      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:3221,17'
          Dst:             __assert_fail
    - functionName:    server_finish_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4947
      functionLinenumberEnd: 5002
      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:4951,20'
          Dst:             send_certificate_verify
        - Src:             'lib/picotls.c:4960,16'
          Dst:             send_finished
        - Src:             'lib/picotls.c:4963,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4964,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:4964,16'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:4966,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:4968,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:4970,16'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:4975,24'
          Dst:             commission_handshake_secret
        - Src:             'lib/picotls.c:4989,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:4991,24'
          Dst:             send_session_ticket
    - functionName:    send_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3235
      functionLinenumberEnd: 3270
      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:3242,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3242,5'
          Dst:             build_certificate_verify_signdata
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3242,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3242,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3242,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3242,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    send_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1863
      functionLinenumberEnd: 1876
      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:1866,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1866,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1866,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:1866,5'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:1866,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1866,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    send_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1880
      functionLinenumberEnd: 1943
      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:1887,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1888,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1890,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:1895,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1896,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1896,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1896,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1896,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:1899,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1899,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1899,9'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:1899,9'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:1899,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1899,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:1914,107'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1914,42'
          Dst:             encode_session_identifier
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1920,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:1937,5'
          Dst:             ptls_buffer_dispose
    - functionName:    encode_session_identifier
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1721
      functionLinenumberEnd: 1759
      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:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:1724,5'
          Dst:             derive_resumption_secret
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:1724,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    derive_resumption_secret
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1502
      functionLinenumberEnd: 1514
      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:1505,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:1508,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1507,16'
          Dst:             ptls_hkdf_expand_label
    - functionName:    default_emit_certificate_cb
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3188
      functionLinenumberEnd: 3199
      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:3191,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3191,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3191,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3191,5'
          Dst:             ptls_build_certificate_message
        - Src:             'lib/picotls.c:3191,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3191,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_build_certificate_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3161
      functionLinenumberEnd: 3182
      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:3164,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3164,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3164,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3165,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    begin_record_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 869
      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:866,5'
          Dst:             ptls_buffer__do_pushv
    - functionName:    key_schedule_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1262
      functionLinenumberEnd: 1271
      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: 7051
      functionLinenumberEnd: 7058
      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:7052,9'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7054,9'
          Dst:             ptls_hexdump
    - functionName:    client_do_handle_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3345
      functionLinenumberEnd: 3354
      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:3348,16'
          Dst:             handle_certificate
    - functionName:    decode_certificate_request
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3114
      functionLinenumberEnd: 3156
      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:3135,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:3119,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3135,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3135,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3135,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:3135,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3135,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3135,5'
          Dst:             decode_signature_algorithms
    - functionName:    key_schedule_select_outer
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1387
      functionLinenumberEnd: 1397
      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:1390,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1391,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1392,5'
          Dst:             __assert_fail
    - functionName:    handle_hello_retry_request
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2779
      functionLinenumberEnd: 2818
      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:2783,85'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2790,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2791,13'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:2815,11'
          Dst:             send_client_hello
    - functionName:    send_client_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2375
      functionLinenumberEnd: 2614
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         193
      ICount:          1593
      EdgeCount:       260
      CyclomaticComplexity: 69
      functionsReached:
        - __assert_fail
        - 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_aead_free
        - 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
        - update_ch_hash_and_binder
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2388,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:2390,38'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/picotls.c:2398,17'
          Dst:             client_decode_ech_config_list
        - Src:             'lib/picotls.c:2400,32'
          Dst:             client_setup_ech
        - Src:             'lib/picotls.c:2405,17'
          Dst:             client_setup_ech_grease
        - Src:             'lib/picotls.c:2422,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2428,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2441,13'
          Dst:             decode_stored_session_ticket
        - Src:             'lib/picotls.c:2455,26'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2476,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2484,34'
          Dst:             key_schedule_new
        - Src:             'lib/picotls.c:2488,20'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:2498,16'
          Dst:             encode_client_hello
        - Src:             'lib/picotls.c:2507,20'
          Dst:             derive_secret_with_empty_digest
        - Src:             'lib/picotls.c:2510,16'
          Dst:             update_ch_hash_and_binder
        - Src:             'lib/picotls.c:2519,88'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2517,20'
          Dst:             encode_client_hello
        - Src:             'lib/picotls.c:2530,31'
          Dst:             strlen
        - Src:             'lib/picotls.c:2540,28'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2552,100'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2550,20'
          Dst:             encode_client_hello
        - Src:             'lib/picotls.c:2557,9'
          Dst:             ptls_aead_encrypt
        - Src:             'lib/picotls.c:2563,26'
          Dst:             outer_ech_header_size
        - Src:             'lib/picotls.c:2569,59'
          Dst:             outer_ech_header_size
        - Src:             'lib/picotls.c:2582,13'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:2584,24'
          Dst:             update_ch_hash_and_binder
        - Src:             'lib/picotls.c:2589,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2598,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2599,20'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:2601,20'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:2605,20'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:2612,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_server_name_is_ipaddr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6724
      functionLinenumberEnd: 6736
      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:6727,9'
          Dst:             inet_pton
        - Src:             'lib/picotls.c:6732,9'
          Dst:             inet_pton
    - functionName:    client_decode_ech_config_list
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1148
      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:1120,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1120,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1120,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1120,5'
          Dst:             decode_one_ech_config
        - Src:             'lib/picotls.c:1120,5'
          Dst:             ptls_iovec_init
    - functionName:    client_setup_ech
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1153
      functionLinenumberEnd: 1180
      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:1159,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:1160,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1161,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:1163,39'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1162,16'
          Dst:             ptls_hpke_setup_base_s
        - Src:             'lib/picotls.c:1172,36'
          Dst:             duplicate_as_str
        - Src:             'lib/picotls.c:1179,9'
          Dst:             clear_ech
    - functionName:    client_setup_ech_grease
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1225
      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:1207,17'
          Dst:             ptls_aead_new_direct
        - Src:             'lib/picotls.c:1218,63'
          Dst:             strlen
        - Src:             'lib/picotls.c:1218,36'
          Dst:             duplicate_as_str
        - Src:             'lib/picotls.c:1224,5'
          Dst:             clear_ech
    - functionName:    decode_stored_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1565
      functionLinenumberEnd: 1623
      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:1573,16'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:1575,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1577,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1579,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1579,5'
          Dst:             decode_new_session_ticket
        - Src:             'lib/picotls.c:1584,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1584,5'
          Dst:             ptls_iovec_init
    - functionName:    encode_client_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2165
      functionLinenumberEnd: 2348
      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:         1345
      ICount:          6294
      EdgeCount:       1696
      CyclomaticComplexity: 353
      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:2168,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             outer_ech_header_size
        - Src:             'lib/picotls.c:2170,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             push_key_share_entry
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             emit_server_name_extension
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             push_signature_algorithms
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             push_additional_extensions
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2170,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    update_ch_hash_and_binder
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2357
      functionLinenumberEnd: 2371
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          96
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calc_verify_data
        - ptls__key_schedule_update_hash
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2363,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2365,20'
          Dst:             calc_verify_data
        - Src:             'lib/picotls.c:2368,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_aead_encrypt
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2094
      functionLinenumberEnd: 2096
      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: 2149
      functionLinenumberEnd: 2150
      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: 2069
      functionLinenumberEnd: 2076
      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:2072,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2073,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2073,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2073,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    emit_server_name_extension
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2132
      functionLinenumberEnd: 2142
      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:2135,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2135,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2135,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2135,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:2135,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:2135,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:2135,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    decode_new_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1519
      functionLinenumberEnd: 1559
      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:1541,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:1523,16'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:1525,16'
          Dst:             ptls_decode32
        - Src:             'lib/picotls.c:1527,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1527,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1531,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1531,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1541,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1541,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1541,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:1541,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1541,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1541,5'
          Dst:             ptls_decode32
    - functionName:    duplicate_as_str
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 571
      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: 1022
      functionLinenumberEnd: 1110
      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:1028,16'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:1031,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1039,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1039,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1047,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1047,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1047,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1065,16'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:1077,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1077,5'
          Dst:             duplicate_as_str
        - Src:             'lib/picotls.c:1077,5'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/picotls.c:1077,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:1094,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:1094,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:1094,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: 2822
      functionLinenumberEnd: 2855
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          245
      EdgeCount:       39
      CyclomaticComplexity: 9
      functionsReached:
        - ech_calc_confirmation
        - key_schedule_select_outer
        - ptls_aead_free
        - ptls_get_log_state
        - 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_getsni_ptls
        - ptls_log_point_maybe_active
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:2831,20'
          Dst:             ech_calc_confirmation
        - Src:             'lib/picotls.c:2847,5'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:2849,5'
          Dst:             key_schedule_select_outer
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:2853,5'
          Dst:             ptls_log__do_write_end
    - functionName:    key_schedule_select_cipher
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1350
      functionLinenumberEnd: 1383
      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:1354,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1359,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:1377,20'
          Dst:             key_schedule_extract
    - functionName:    decode_server_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2628
      functionLinenumberEnd: 2774
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         193
      ICount:          1048
      EdgeCount:       250
      CyclomaticComplexity: 59
      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:2682,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:2645,28'
          Dst:             memcmp
        - Src:             'lib/picotls.c:2649,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2649,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2660,20'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2662,34'
          Dst:             ptls_find_cipher_suite
        - Src:             'lib/picotls.c:2670,20'
          Dst:             ptls_decode8
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2682,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2682,5'
          Dst:             decode_key_share_entry
        - Src:             'lib/picotls.c:2682,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2682,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2682,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2682,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2750,10'
          Dst:             is_supported_version
    - functionName:    ptls_find_cipher_suite
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2618
      functionLinenumberEnd: 2625
      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: 5057
      functionLinenumberEnd: 5076
      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:5066,16'
          Dst:             update_traffic_key
    - functionName:    update_traffic_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5039
      functionLinenumberEnd: 5053
      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:5045,72'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5046,54'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5045,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:5049,11'
          Dst:             setup_traffic_protection
    - functionName:    client_handle_new_session_ticket
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3556
      functionLinenumberEnd: 3595
      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:3564,20'
          Dst:             decode_new_session_ticket
        - Src:             'lib/picotls.c:3575,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:3576,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3577,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3578,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3579,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3579,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3579,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3580,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3580,5'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:3580,5'
          Dst:             derive_resumption_secret
        - Src:             'lib/picotls.c:3580,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3588,70'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3593,5'
          Dst:             ptls_buffer_dispose
    - functionName:    client_handle_finished
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3496
      functionLinenumberEnd: 3552
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          555
      EdgeCount:       116
      CyclomaticComplexity: 30
      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
        - push_change_cipher_spec
        - send_certificate
        - send_certificate_verify
        - send_finished
        - setup_traffic_protection
        - verify_finished
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:3500,16'
          Dst:             verify_finished
        - Src:             'lib/picotls.c:3502,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:3505,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3505,16'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:3507,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:3509,16'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:3511,16'
          Dst:             derive_exporter_secret
        - Src:             'lib/picotls.c:3516,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3518,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3518,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:3518,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:3518,13'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:3520,20'
          Dst:             commission_handshake_secret
        - Src:             'lib/picotls.c:3524,16'
          Dst:             push_change_cipher_spec
        - Src:             'lib/picotls.c:3528,20'
          Dst:             send_certificate
        - Src:             'lib/picotls.c:3530,19'
          Dst:             send_certificate_verify
        - Src:             'lib/picotls.c:3533,51'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3538,11'
          Dst:             send_finished
        - Src:             'lib/picotls.c:3541,16'
          Dst:             setup_traffic_protection
    - functionName:    client_handle_certificate_verify
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3472
      functionLinenumberEnd: 3480
      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:3473,15'
          Dst:             handle_certificate_verify
    - functionName:    client_handle_compressed_certificate
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3370
      functionLinenumberEnd: 3413
      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:3383,16'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:3385,16'
          Dst:             ptls_decode24
        - Src:             'lib/picotls.c:3395,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:3395,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3395,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:3404,16'
          Dst:             client_do_handle_certificate
        - Src:             'lib/picotls.c:3407,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_decode24
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 937
      functionLinenumberEnd: 943
      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: 3357
      functionLinenumberEnd: 3367
      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:3360,16'
          Dst:             client_do_handle_certificate
        - Src:             'lib/picotls.c:3363,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    client_handle_certificate_request
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3273
      functionLinenumberEnd: 3290
      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:3277,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:3279,16'
          Dst:             decode_certificate_request
        - Src:             'lib/picotls.c:3287,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    client_handle_encrypted_extensions
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2990
      functionLinenumberEnd: 3109
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         185
      ICount:          1033
      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_server_name_is_ipaddr
        - ptls_set_negotiated_protocol
        - report_unknown_extensions
        - should_collect_unknown_extension
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/picotls.c:2998,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:2998,5'
          Dst:             extension_bitmap_testandset
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_server_name_is_ipaddr
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_set_negotiated_protocol
        - Src:             'lib/picotls.c:2998,5'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2998,5'
          Dst:             client_decode_ech_config_list
        - Src:             'lib/picotls.c:2998,5'
          Dst:             should_collect_unknown_extension
        - Src:             'lib/picotls.c:2998,5'
          Dst:             collect_unknown_extension
        - Src:             'lib/picotls.c:3098,16'
          Dst:             report_unknown_extensions
        - Src:             'lib/picotls.c:3101,5'
          Dst:             ptls__key_schedule_update_hash
    - functionName:    ptls_set_negotiated_protocol
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5610
      functionLinenumberEnd: 5620
      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:5613,100'
          Dst:             strlen
        - Src:             'lib/picotls.c:5613,38'
          Dst:             duplicate_as_str
    - functionName:    client_handle_hello
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2860
      functionLinenumberEnd: 2955
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          589
      EdgeCount:       106
      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:2865,16'
          Dst:             decode_server_hello
        - Src:             'lib/picotls.c:2874,20'
          Dst:             key_schedule_select_cipher
        - Src:             'lib/picotls.c:2876,9'
          Dst:             key_schedule_transform_post_ch1hash
        - Src:             'lib/picotls.c:2883,24'
          Dst:             client_ech_select_hello
        - Src:             'lib/picotls.c:2886,9'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2887,16'
          Dst:             handle_hello_retry_request
        - Src:             'lib/picotls.c:2891,43'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:2890,16'
          Dst:             key_schedule_select_cipher
        - Src:             'lib/picotls.c:2901,20'
          Dst:             client_ech_select_hello
        - Src:             'lib/picotls.c:2906,5'
          Dst:             clear_ech
        - Src:             'lib/picotls.c:2918,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:2922,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:2927,16'
          Dst:             key_schedule_extract
        - Src:             'lib/picotls.c:2929,16'
          Dst:             setup_traffic_protection
        - Src:             'lib/picotls.c:2936,20'
          Dst:             derive_secret
        - Src:             'lib/picotls.c:2942,20'
          Dst:             setup_traffic_protection
    - functionName:    ntoh24
      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:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    message_buffer_is_overflow
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5828
      functionLinenumberEnd: 5834
      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: 701
      functionLinenumberEnd: 704
      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: 557
      functionLinenumberEnd: 560
      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: 754
      functionLinenumberEnd: 762
      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: 5079
      functionLinenumberEnd: 5089
      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:5081,20'
          Dst:             ntoh16
        - Src:             'lib/picotls.c:5082,19'
          Dst:             ntoh16
    - functionName:    handle_alert
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5817
      functionLinenumberEnd: 5825
      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: 708
      functionLinenumberEnd: 715
      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: 5092
      functionLinenumberEnd: 5166
      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:5101,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5095,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5114,20'
          Dst:             parse_record_header
        - Src:             'lib/picotls.c:5128,9'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:5129,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5139,16'
          Dst:             parse_record_header
        - Src:             'lib/picotls.c:5145,20'
          Dst:             ptls_buffer_reserve
    - functionName:    commit_record_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 888
      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:878,15'
          Dst:             buffer_encrypt_record
        - Src:             'lib/picotls.c:882,9'
          Dst:             __assert_fail
    - functionName:    buffer_encrypt_record
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 858
      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:829,20'
          Dst:             ptls_buffer_reserve_aligned
        - Src:             'lib/picotls.c:831,32'
          Dst:             aead_encrypt
        - Src:             'lib/picotls.c:832,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:850,11'
          Dst:             buffer_push_encrypted_records
    - functionName:    buffer_push_encrypted_records
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 816
      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:780,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:780,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:780,13'
          Dst:             ptls_buffer_reserve_aligned
        - Src:             'lib/picotls.c:780,13'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:780,13'
          Dst:             encode64
        - Src:             'lib/picotls.c:780,13'
          Dst:             build_tls12_aad
        - Src:             'lib/picotls.c:780,13'
          Dst:             ptls_aead_encrypt
        - Src:             'lib/picotls.c:780,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:804,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:804,13'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:804,13'
          Dst:             ptls_buffer_reserve_aligned
        - Src:             'lib/picotls.c:804,13'
          Dst:             aead_encrypt
        - Src:             'lib/picotls.c:804,13'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    duplicate_stringlist
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6908
      functionLinenumberEnd: 6922
      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:6910,16'
          Dst:             strdup
        - Src:             'lib/picotls.c:6915,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: 7216
      functionLinenumberEnd: 7286
      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:7223,5'
          Dst:             pthread_mutex_lock
        - Src:             'lib/picotls.c:7225,19'
          Dst:             duplicate_stringlist
        - Src:             'lib/picotls.c:7229,17'
          Dst:             duplicate_stringlist
        - Src:             'lib/picotls.c:7235,88'
          Dst:             strlen
        - Src:             'lib/picotls.c:7245,18'
          Dst:             inet_pton
        - Src:             'lib/picotls.c:7247,22'
          Dst:             inet_pton
        - Src:             'lib/picotls.c:7249,17'
          Dst:             ptls_build_v4_mapped_v6_address
        - Src:             'lib/picotls.c:7251,17'
          Dst:             memcmp
        - Src:             'lib/picotls.c:7242,88'
          Dst:             strlen
        - Src:             'lib/picotls.c:7280,5'
          Dst:             pthread_mutex_unlock
    - functionName:    ptls_build_v4_mapped_v6_address
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6821
      functionLinenumberEnd: 6825
      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: 7207
      functionLinenumberEnd: 7209
      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: 7196
      functionLinenumberEnd: 7204
      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: 7071
      functionLinenumberEnd: 7073
      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:7072,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_signed64
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7066
      functionLinenumberEnd: 7068
      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:7067,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_signed32
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7061
      functionLinenumberEnd: 7063
      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:7062,5'
          Dst:             pushf_logbuf_or_invalidate
    - functionName:    ptls_log__do_push_element_unsafestr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7042
      functionLinenumberEnd: 7048
      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:7043,9'
          Dst:             expand_logbuf_or_invalidate
        - Src:             'lib/picotls.c:7045,37'
          Dst:             ptls_jsonescape
    - functionName:    ptls_jsonescape
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6782
      functionLinenumberEnd: 6817
      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:6787,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6808,23'
          Dst:             byte_to_hex
    - functionName:    ptls_ech_encode_config
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6740
      functionLinenumberEnd: 6760
      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:6743,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6744,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    handle_server_handshake_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5747
      functionLinenumberEnd: 5813
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          350
      EdgeCount:       72
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - handle_key_update
        - ptls_get_log_state
        - 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_getsni_ptls
        - 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:5751,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:5790,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5755,19'
          Dst:             server_handle_hello
        - Src:             'lib/picotls.c:5762,19'
          Dst:             server_handle_certificate
        - Src:             'lib/picotls.c:5769,19'
          Dst:             server_handle_certificate_verify
        - Src:             'lib/picotls.c:5775,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5777,19'
          Dst:             server_handle_end_of_early_data
        - Src:             'lib/picotls.c:5784,19'
          Dst:             server_handle_finished
        - Src:             'lib/picotls.c:5792,19'
          Dst:             handle_key_update
        - Src:             'lib/picotls.c:5800,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log__do_push_element_unsigned32
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log__do_push_element_signed32
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5807,5'
          Dst:             ptls_log__do_write_end
    - functionName:    handle_client_handshake_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5662
      functionLinenumberEnd: 5742
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          378
      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_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_getsni_ptls
        - ptls_log_point_maybe_active
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/picotls.c:5666,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:5689,9'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:5716,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5670,19'
          Dst:             client_handle_hello
        - Src:             'lib/picotls.c:5677,19'
          Dst:             client_handle_encrypted_extensions
        - Src:             'lib/picotls.c:5684,19'
          Dst:             client_handle_certificate_request
        - Src:             'lib/picotls.c:5691,19'
          Dst:             client_handle_certificate
        - Src:             'lib/picotls.c:5694,19'
          Dst:             client_handle_compressed_certificate
        - Src:             'lib/picotls.c:5703,19'
          Dst:             client_handle_certificate_verify
        - Src:             'lib/picotls.c:5710,19'
          Dst:             client_handle_finished
        - Src:             'lib/picotls.c:5718,19'
          Dst:             client_handle_new_session_ticket
        - Src:             'lib/picotls.c:5721,19'
          Dst:             handle_key_update
        - Src:             'lib/picotls.c:5729,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log__do_push_element_unsigned32
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log__do_push_element_signed32
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5736,5'
          Dst:             ptls_log__do_write_end
    - functionName:    handle_handshake_record
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5841
      functionLinenumberEnd: 5903
      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:5871,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5854,13'
          Dst:             message_buffer_is_overflow
        - Src:             'lib/picotls.c:5856,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5867,31'
          Dst:             ntoh24
        - Src:             'lib/picotls.c:5870,32'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5877,13'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:5886,13'
          Dst:             message_buffer_is_overflow
        - Src:             'lib/picotls.c:5889,13'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:5890,24'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5899,9'
          Dst:             ptls_buffer_dispose
    - functionName:    commit_raw_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6623
      functionLinenumberEnd: 6639
      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:6633,9'
          Dst:             __assert_fail
    - functionName:    begin_raw_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6615
      functionLinenumberEnd: 6619
      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: 6682
      functionLinenumberEnd: 6696
      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:6683,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6690,16'
          Dst:             send_client_hello
        - Src:             'lib/picotls.c:6692,9'
          Dst:             ptls_get_read_epoch
        - Src:             'lib/picotls.c:6695,12'
          Dst:             handle_handshake_record
        - Src:             'lib/picotls.c:6695,12'
          Dst:             handle_client_handshake_message
    - functionName:    ptls_get_read_epoch
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6643
      functionLinenumberEnd: 6671
      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:6644,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6652,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6668,9'
          Dst:             __assert_fail
    - functionName:    ptls_server_handle_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6700
      functionLinenumberEnd: 6718
      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:6701,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6708,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6709,16'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:6712,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6714,9'
          Dst:             ptls_get_read_epoch
        - Src:             'lib/picotls.c:6717,12'
          Dst:             handle_handshake_record
        - Src:             'lib/picotls.c:6717,12'
          Dst:             handle_server_handshake_message
    - functionName:    ptls_handle_message
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6675
      functionLinenumberEnd: 6677
      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:6676,29'
          Dst:             ptls_server_handle_message
        - Src:             'lib/picotls.c:6677,29'
          Dst:             ptls_client_handle_message
    - functionName:    get_time
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6595
      functionLinenumberEnd: 6598
      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:6597,5'
          Dst:             gettimeofday
    - functionName:    ptls_aead__build_iv
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6558
      functionLinenumberEnd: 6571
      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: 2088
      functionLinenumberEnd: 2090
      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: 2083
      functionLinenumberEnd: 2085
      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: 6547
      functionLinenumberEnd: 6555
      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:6551,5'
          Dst:             ptls_aead_get_iv
        - Src:             'lib/picotls.c:6554,5'
          Dst:             ptls_aead_set_iv
    - functionName:    ptls_cipher_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6494
      functionLinenumberEnd: 6497
      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: 6480
      functionLinenumberEnd: 6491
      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: 6335
      functionLinenumberEnd: 6343
      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: 6245
      functionLinenumberEnd: 6281
      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:6253,13'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6268,16'
          Dst:             ptls_calc_hash
        - Src:             'lib/picotls.c:6271,80'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6272,46'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6271,16'
          Dst:             ptls_hkdf_expand_label
        - Src:             'lib/picotls.c:6274,56'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6275,34'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:6274,11'
          Dst:             ptls_hkdf_expand_label
    - functionName:    ptls_get_record_overhead
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6218
      functionLinenumberEnd: 6226
      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: 6210
      functionLinenumberEnd: 6214
      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:6211,5'
          Dst:             __assert_fail
    - functionName:    update_send_key
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6167
      functionLinenumberEnd: 6183
      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:6171,5'
          Dst:             init_record_message_emitter
        - Src:             'lib/picotls.c:6174,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6174,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6174,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6174,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6174,5'
          Dst:             ptls__key_schedule_update_hash
        - Src:             'lib/picotls.c:6176,16'
          Dst:             update_traffic_key
    - functionName:    init_record_message_emitter
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6058
      functionLinenumberEnd: 6061
      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: 6187
      functionLinenumberEnd: 6207
      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:6188,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6200,20'
          Dst:             update_send_key
        - Src:             'lib/picotls.c:6206,12'
          Dst:             buffer_push_encrypted_records
    - functionName:    handle_input_tls12
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5993
      functionLinenumberEnd: 6055
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          268
      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:6037,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5998,16'
          Dst:             parse_record
        - Src:             'lib/picotls.c:6000,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6008,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6009,20'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:6024,5'
          Dst:             build_tls12_aad
        - Src:             'lib/picotls.c:6027,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:6029,9'
          Dst:             ptls_aead_decrypt
        - Src:             'lib/picotls.c:6044,15'
          Dst:             handle_alert
        - Src:             'lib/picotls.c:6052,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_receive
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6127
      functionLinenumberEnd: 6163
      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:6144,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6132,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6138,19'
          Dst:             handle_input_tls12
        - Src:             'lib/picotls.c:6140,19'
          Dst:             handle_input
    - functionName:    handle_input
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5907
      functionLinenumberEnd: 5990
      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:5958,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5912,16'
          Dst:             parse_record
        - Src:             'lib/picotls.c:5914,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5931,20'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/picotls.c:5933,20'
          Dst:             aead_decrypt
        - Src:             'lib/picotls.c:5954,15'
          Dst:             handle_handshake_record
        - Src:             'lib/picotls.c:5972,19'
          Dst:             handle_alert
        - Src:             'lib/picotls.c:5981,5'
          Dst:             ptls_buffer_dispose
    - functionName:    ptls_send_alert
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6229
      functionLinenumberEnd: 6241
      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:6233,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6233,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6233,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:6233,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:6236,20'
          Dst:             buffer_encrypt_record
    - functionName:    ptls_handshake
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6064
      functionLinenumberEnd: 6124
      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:6074,5'
          Branch Sides:    []
        - Branch String:   'lib/picotls.c:6101,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:6068,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6070,5'
          Dst:             init_record_message_emitter
        - Src:             'lib/picotls.c:6076,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6077,16'
          Dst:             send_client_hello
        - Src:             'lib/picotls.c:6080,16'
          Dst:             server_finish_handshake
        - Src:             'lib/picotls.c:6088,5'
          Dst:             ptls_buffer_init
        - Src:             'lib/picotls.c:6094,15'
          Dst:             handle_input
        - Src:             'lib/picotls.c:6096,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:6099,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:6116,17'
          Dst:             ptls_send_alert
    - functionName:    ptls_get_data_ptr
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5647
      functionLinenumberEnd: 5648
      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: 5628
      functionLinenumberEnd: 5629
      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: 5623
      functionLinenumberEnd: 5624
      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: 5605
      functionLinenumberEnd: 5606
      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: 5574
      functionLinenumberEnd: 5583
      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:5578,105'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5578,16'
          Dst:             get_traffic_keys
    - functionName:    ptls_get_cipher
      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_client_random
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5556
      functionLinenumberEnd: 5557
      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:5557,12'
          Dst:             ptls_iovec_init
    - functionName:    ptls_get_async_job
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5551
      functionLinenumberEnd: 5552
      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: 5544
      functionLinenumberEnd: 5548
      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:5545,5'
          Dst:             update_open_count
        - Src:             'lib/picotls.c:5546,5'
          Dst:             update_open_count
    - functionName:    update_open_count
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5169
      functionLinenumberEnd: 5172
      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: 5539
      functionLinenumberEnd: 5540
      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: 1492
      functionLinenumberEnd: 1499
      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:1496,5'
          Dst:             __assert_fail
    - functionName:    ptls_free
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5501
      functionLinenumberEnd: 5536
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          389
      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_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_getsni_ptls
        - ptls_log_point_maybe_active
        - update_open_count
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5503,5'
          Dst:             ptls_log__do_write_end
        - Src:             'lib/picotls.c:5505,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:5506,5'
          Dst:             ptls_buffer_dispose
        - Src:             'lib/picotls.c:5507,5'
          Dst:             free_exporter_master_secret
        - Src:             'lib/picotls.c:5508,5'
          Dst:             free_exporter_master_secret
        - Src:             'lib/picotls.c:5510,9'
          Dst:             key_schedule_free
        - Src:             'lib/picotls.c:5512,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:5514,9'
          Dst:             ptls_aead_free
        - Src:             'lib/picotls.c:5517,5'
          Dst:             clear_ech
        - Src:             'lib/picotls.c:5523,89'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5528,75'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5528,101'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5533,5'
          Dst:             update_open_count
    - functionName:    import_tls13_traffic_protection
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5385
      functionLinenumberEnd: 5398
      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:5391,9'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5394,9'
          Dst:             setup_traffic_protection
    - functionName:    import_tls12_traffic_protection
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5358
      functionLinenumberEnd: 5382
      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:5369,9'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5372,13'
          Dst:             ptls_decode64
        - Src:             'lib/picotls.c:5378,21'
          Dst:             ptls_aead_new_direct
    - functionName:    ptls_set_server_name
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5591
      functionLinenumberEnd: 5602
      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:5595,89'
          Dst:             strlen
        - Src:             'lib/picotls.c:5595,18'
          Dst:             duplicate_as_str
    - functionName:    ptls_import
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5401
      functionLinenumberEnd: 5497
      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:5409,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5409,5'
          Dst:             new_instance
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode16
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_set_server_name
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_set_negotiated_protocol
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_find_cipher_suite
        - Src:             'lib/picotls.c:5409,5'
          Dst:             import_tls12_traffic_protection
        - Src:             'lib/picotls.c:5409,5'
          Dst:             import_tls12_traffic_protection
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_find_cipher_suite
        - Src:             'lib/picotls.c:5409,5'
          Dst:             key_schedule_new
        - Src:             'lib/picotls.c:5409,5'
          Dst:             import_tls13_traffic_protection
        - Src:             'lib/picotls.c:5409,5'
          Dst:             import_tls13_traffic_protection
        - Src:             'lib/picotls.c:5409,5'
          Dst:             ptls_decode_quicint
        - Src:             'lib/picotls.c:5488,21'
          Dst:             ptls_is_server
        - Src:             'lib/picotls.c:5493,13'
          Dst:             ptls_free
    - functionName:    new_instance
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5175
      functionLinenumberEnd: 5207
      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:5179,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5181,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5185,9'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5193,5'
          Dst:             update_open_count
        - Src:             'lib/picotls.c:5202,9'
          Dst:             ptls_log_init_conn_state
    - functionName:    ptls_get_protocol_version
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5566
      functionLinenumberEnd: 5571
      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: 5324
      functionLinenumberEnd: 5354
      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:5326,86'
          Dst:             strlen
        - Src:             'lib/picotls.c:5326,9'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5334,9'
          Dst:             ptls_get_protocol_version
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             strlen
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5335,9'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5344,20'
          Dst:             export_tls12_params
    - functionName:    export_tls12_params
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5263
      functionLinenumberEnd: 5280
      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:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             strlen
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
        - Src:             'lib/picotls.c:5266,5'
          Dst:             ptls_buffer__adjust_quic_blocksize
    - functionName:    ptls_tls12_phash
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6440
      functionLinenumberEnd: 6477
      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:6445,17'
          Dst:             ptls_hmac_create
        - Src:             'lib/picotls.c:6450,35'
          Dst:             strlen
        - Src:             'lib/picotls.c:6458,39'
          Dst:             strlen
    - functionName:    ptls_build_tls12_export_params
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5286
      functionLinenumberEnd: 5320
      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:5287,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5293,5'
          Dst:             __assert_fail
        - Src:             'lib/picotls.c:5297,71'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5298,48'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5297,14'
          Dst:             ptls_tls12_phash
        - Src:             'lib/picotls.c:5314,11'
          Dst:             export_tls12_params
    - functionName:    ptls_server_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5227
      functionLinenumberEnd: 5234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          133
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - new_instance
        - ptls_get_log_state
        - 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_getsni_ptls
        - ptls_log_point_maybe_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5228,19'
          Dst:             new_instance
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5233,5'
          Dst:             ptls_log__do_write_end
    - functionName:    ptls_client_new
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5210
      functionLinenumberEnd: 5223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          193
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - log_client_random
        - new_instance
        - ptls_get_log_state
        - 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_getsni_ptls
        - ptls_log_point_maybe_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/picotls.c:5211,19'
          Dst:             new_instance
        - Src:             'lib/picotls.c:5214,5'
          Dst:             log_client_random
        - Src:             'lib/picotls.c:5217,13'
          Dst:             ptls_iovec_init
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log_point_maybe_active
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_get_log_state
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log_conn_maybe_active
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log__do_write_start
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log__do_push_element_unsigned64
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log__do_push_element_bool
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log_getsni_ptls
        - Src:             'lib/picotls.c:5222,5'
          Dst:             ptls_log__do_write_end
    - functionName:    ptls_buffer_push_asn1_ubigint
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 694
      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:681,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:682,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:682,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:682,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:682,5'
          Dst:             ptls_buffer__do_pushv
        - Src:             'lib/picotls.c:682,5'
          Dst:             ptls_buffer__adjust_asn1_blocksize
    - functionName:    ptls_buffer__adjust_asn1_blocksize
      functionSourceFile: '/src/picotls/lib/picotls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 667
      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:666,5'
          Dst:             fprintf
        - Src:             'lib/picotls.c:667,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: 2043
      functionLinenumberEnd: 2046
      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:2044,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: 2033
      functionLinenumberEnd: 2040
      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:2034,5'
          Dst:             __assert_fail
    - functionName:    ptls_iovec_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2022
      functionLinenumberEnd: 2029
      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: 2078
      functionLinenumberEnd: 2080
      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: 2157
      functionLinenumberEnd: 2159
      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: 2073
      functionLinenumberEnd: 2075
      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: 2141
      functionLinenumberEnd: 2148
      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: 2128
      functionLinenumberEnd: 2137
      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:2129,26'
          Dst:             ptls_iovec_init
        - Src:             'include/picotls.h:2133,9'
          Dst:             ptls_cipher_init
        - Src:             'include/picotls.h:2135,9'
          Dst:             ptls_cipher_encrypt
    - functionName:    ptls_iovec_init
      functionSourceFile: '/src/picotls/include/picotls.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2022
      functionLinenumberEnd: 2029
      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: 1953
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          192
      EdgeCount:       43
      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:1952,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: 2162
      functionLinenumberEnd: 2227
      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:2167,17'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'lib/openssl.c:2171,17'
          Dst:             HMAC_CTX_new
        - Src:             'lib/openssl.c:2188,24'
          Dst:             HMAC_size
        - Src:             'lib/openssl.c:2195,10'
          Dst:             HMAC_Update
        - Src:             'lib/openssl.c:2195,51'
          Dst:             HMAC_Final
        - Src:             'lib/openssl.c:2207,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/openssl.c:2209,10'
          Dst:             EVP_DecryptUpdate
        - Src:             'lib/openssl.c:2214,10'
          Dst:             EVP_DecryptFinal_ex
        - Src:             'lib/openssl.c:2224,9'
          Dst:             EVP_CIPHER_CTX_free
        - Src:             'lib/openssl.c:2226,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: 2102
      functionLinenumberEnd: 2157
      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:2108,17'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'lib/openssl.c:2112,17'
          Dst:             HMAC_CTX_new
        - Src:             'lib/openssl.c:2117,16'
          Dst:             ptls_buffer_reserve
        - Src:             'lib/openssl.c:2130,10'
          Dst:             EVP_EncryptUpdate
        - Src:             'lib/openssl.c:2135,10'
          Dst:             EVP_EncryptFinal_ex
        - Src:             'lib/openssl.c:2142,10'
          Dst:             HMAC_Update
        - Src:             'lib/openssl.c:2142,84'
          Dst:             HMAC_Final
        - Src:             'lib/openssl.c:2146,12'
          Dst:             HMAC_size
        - Src:             'lib/openssl.c:2148,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:2154,9'
          Dst:             EVP_CIPHER_CTX_free
        - Src:             'lib/openssl.c:2156,9'
          Dst:             HMAC_CTX_free
    - functionName:    ptls_openssl_raw_pubkey_dispose_verify_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2093
      functionLinenumberEnd: 2095
      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:2094,5'
          Dst:             EVP_PKEY_free
    - functionName:    verify_raw_cert
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2054
      functionLinenumberEnd: 2083
      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:2059,5'
          Dst:             __assert_fail
        - Src:             'lib/openssl.c:2064,13'
          Dst:             i2d_PUBKEY
        - Src:             'lib/openssl.c:2077,5'
          Dst:             EVP_PKEY_up_ref
        - Src:             'lib/openssl.c:2082,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: 2087
      functionLinenumberEnd: 2090
      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:2088,5'
          Dst:             EVP_PKEY_up_ref
    - functionName:    ptls_openssl_dispose_verify_certificate
      functionSourceFile: '/src/picotls/lib/openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2026
      functionLinenumberEnd: 2028
      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:2027,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: 2031
      functionLinenumberEnd: 2049
      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:2035,18'
          Dst:             X509_STORE_new
        - Src:             'lib/openssl.c:2037,48'
          Dst:             X509_LOOKUP_file
        - Src:             'lib/openssl.c:2037,19'
          Dst:             X509_STORE_add_lookup
        - Src:             'lib/openssl.c:2039,5'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'lib/openssl.c:2040,48'
          Dst:             X509_LOOKUP_hash_dir
        - Src:             'lib/openssl.c:2040,19'
          Dst:             X509_STORE_add_lookup
        - Src:             'lib/openssl.c:2042,5'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'lib/openssl.c:2047,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: 1959
      functionLinenumberEnd: 2006
      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:1962,29'
          Dst:             sk_X509_new_null
        - Src:             'lib/openssl.c:1969,21'
          Dst:             to_x509
        - Src:             'lib/openssl.c:1974,28'
          Dst:             to_x509
        - Src:             'lib/openssl.c:1979,13'
          Dst:             sk_X509_push
        - Src:             'lib/openssl.c:1981,64'
          Dst:             ptls_is_server
        - Src:             'lib/openssl.c:1981,15'
          Dst:             verify_cert_chain
        - Src:             'lib/openssl.c:1995,25'
          Dst:             X509_get_pubkey
        - Src:             'lib/openssl.c:2003,9'
          Dst:             sk_X509_pop_free
        - Src:             'lib/openssl.c:2003,9'
          Dst:             X509_free
        - Src:             'lib/openssl.c:2005,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: 2010
      functionLinenumberEnd: 2023
      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:2014,9'
          Dst:             X509_STORE_up_ref
        - Src:             'lib/openssl.c:2018,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:       []
...
